// export Cargo , xy ; starting begin PrepareRussians ;
   0: CALL 343 0 0
// InGameOn ;
   4: CALL_OW 8
// Cargo = 0 ;
   8: LD_ADDR_EXP 1
  12: PUSH
  13: LD_INT 0
  15: ST_TO_ADDR
// end ;
  16: END
// every 0 0$02 do var baza ;
  17: GO 19
  19: DISABLE
  20: LD_INT 0
  22: PPUSH
// begin baza = FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] ] ) ;
  23: LD_ADDR_VAR 0 1
  27: PUSH
  28: LD_INT 22
  30: PUSH
  31: LD_INT 1
  33: PUSH
  34: EMPTY
  35: LIST
  36: LIST
  37: PUSH
  38: LD_INT 21
  40: PUSH
  41: LD_INT 1
  43: PUSH
  44: EMPTY
  45: LIST
  46: LIST
  47: PUSH
  48: EMPTY
  49: LIST
  50: LIST
  51: PPUSH
  52: CALL_OW 69
  56: ST_TO_ADDR
// CenterOnUnits ( Nefarem ) ;
  57: LD_EXP 7
  61: PPUSH
  62: CALL_OW 85
// SayRadio ( Nefarem , A1 ) ;
  66: LD_EXP 7
  70: PPUSH
  71: LD_STRING A1
  73: PPUSH
  74: CALL_OW 94
// SayRadio ( baza [ 1 ] , A2 ) ;
  78: LD_VAR 0 1
  82: PUSH
  83: LD_INT 1
  85: ARRAY
  86: PPUSH
  87: LD_STRING A2
  89: PPUSH
  90: CALL_OW 94
// SayRadio ( Nefarem , A3 ) ;
  94: LD_EXP 7
  98: PPUSH
  99: LD_STRING A3
 101: PPUSH
 102: CALL_OW 94
// SayRadio ( baza [ 1 ] , A4 ) ;
 106: LD_VAR 0 1
 110: PUSH
 111: LD_INT 1
 113: ARRAY
 114: PPUSH
 115: LD_STRING A4
 117: PPUSH
 118: CALL_OW 94
// SayRadio ( Nefarem , A5 ) ;
 122: LD_EXP 7
 126: PPUSH
 127: LD_STRING A5
 129: PPUSH
 130: CALL_OW 94
// SayRadio ( baza [ 1 ] , A6 ) ;
 134: LD_VAR 0 1
 138: PUSH
 139: LD_INT 1
 141: ARRAY
 142: PPUSH
 143: LD_STRING A6
 145: PPUSH
 146: CALL_OW 94
// SayRadio ( Nefarem , A7 ) ;
 150: LD_EXP 7
 154: PPUSH
 155: LD_STRING A7
 157: PPUSH
 158: CALL_OW 94
// InGameOff ;
 162: CALL_OW 9
// ChangeMissionObjectives ( M1 ) ;
 166: LD_STRING M1
 168: PPUSH
 169: CALL_OW 337
// SaveForQuickRestart ;
 173: CALL_OW 22
// ProductionVehicles ;
 177: CALL 6200 0 0
// wait ( 1 1$30 ) ;
 181: LD_INT 3150
 183: PPUSH
 184: CALL_OW 67
// xy = 1 ;
 188: LD_ADDR_EXP 2
 192: PUSH
 193: LD_INT 1
 195: ST_TO_ADDR
// end ;
 196: PPOPN 1
 198: END
// every 0 0$01 do var veh , i ;
 199: GO 201
 201: DISABLE
 202: LD_INT 0
 204: PPUSH
 205: PPUSH
// begin veh = FilterUnitsInArea ( AreaEscape , [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_weapon , us_cargo_bay ] ] ) ;
 206: LD_ADDR_VAR 0 1
 210: PUSH
 211: LD_INT 16
 213: PPUSH
 214: LD_INT 22
 216: PUSH
 217: LD_INT 4
 219: PUSH
 220: EMPTY
 221: LIST
 222: LIST
 223: PUSH
 224: LD_INT 21
 226: PUSH
 227: LD_INT 2
 229: PUSH
 230: EMPTY
 231: LIST
 232: LIST
 233: PUSH
 234: LD_INT 33
 236: PUSH
 237: LD_INT 3
 239: PUSH
 240: EMPTY
 241: LIST
 242: LIST
 243: PUSH
 244: LD_INT 34
 246: PUSH
 247: LD_INT 12
 249: PUSH
 250: EMPTY
 251: LIST
 252: LIST
 253: PUSH
 254: EMPTY
 255: LIST
 256: LIST
 257: LIST
 258: LIST
 259: PPUSH
 260: CALL_OW 70
 264: ST_TO_ADDR
// enable ;
 265: ENABLE
// for i in veh do
 266: LD_ADDR_VAR 0 2
 270: PUSH
 271: LD_VAR 0 1
 275: PUSH
 276: FOR_IN
 277: IFFALSE 304
// begin RemoveUnit ( i ) ;
 279: LD_VAR 0 2
 283: PPUSH
 284: CALL_OW 64
// Cargo = Cargo + 1 ;
 288: LD_ADDR_EXP 1
 292: PUSH
 293: LD_EXP 1
 297: PUSH
 298: LD_INT 1
 300: PLUS
 301: ST_TO_ADDR
// end ;
 302: GO 276
 304: POP
 305: POP
// end ;
 306: PPOPN 2
 308: END
// every 0 0$01 trigger Cargo = 2 do
 309: LD_EXP 1
 313: PUSH
 314: LD_INT 2
 316: EQUAL
 317: IFFALSE 342
 319: GO 321
 321: DISABLE
// begin case query ( Part1 ) of 1 :
 322: LD_STRING Part1
 324: PPUSH
 325: CALL_OW 97
 329: PUSH
 330: LD_INT 1
 332: DOUBLE
 333: EQUAL
 334: IFTRUE 338
 336: GO 341
 338: POP
// begin end ; end ;
 339: GO 342
 341: POP
// end ; end_of_file
 342: END
// export function PrepareRussians ; var Ru1_turrets , Am1_turrets , i , un , l , SolLevel , EngLevel , MechLevel , DocLevel , Num , MechNum ; begin
 343: LD_INT 0
 345: PPUSH
 346: PPUSH
 347: PPUSH
 348: PPUSH
 349: PPUSH
 350: PPUSH
 351: PPUSH
 352: PPUSH
 353: PPUSH
 354: PPUSH
 355: PPUSH
 356: PPUSH
// MechNum = [ 1 , 2 , 2 ] [ Difficulty ] ;
 357: LD_ADDR_VAR 0 12
 361: PUSH
 362: LD_INT 1
 364: PUSH
 365: LD_INT 2
 367: PUSH
 368: LD_INT 2
 370: PUSH
 371: EMPTY
 372: LIST
 373: LIST
 374: LIST
 375: PUSH
 376: LD_OWVAR 67
 380: ARRAY
 381: ST_TO_ADDR
// Num = [ 3 , 4 , 4 ] [ Difficulty ] ;
 382: LD_ADDR_VAR 0 11
 386: PUSH
 387: LD_INT 3
 389: PUSH
 390: LD_INT 4
 392: PUSH
 393: LD_INT 4
 395: PUSH
 396: EMPTY
 397: LIST
 398: LIST
 399: LIST
 400: PUSH
 401: LD_OWVAR 67
 405: ARRAY
 406: ST_TO_ADDR
// SolLevel := [ 6 , 6 , 7 ] [ Difficulty ] ;
 407: LD_ADDR_VAR 0 7
 411: PUSH
 412: LD_INT 6
 414: PUSH
 415: LD_INT 6
 417: PUSH
 418: LD_INT 7
 420: PUSH
 421: EMPTY
 422: LIST
 423: LIST
 424: LIST
 425: PUSH
 426: LD_OWVAR 67
 430: ARRAY
 431: ST_TO_ADDR
// EngLevel := [ 5 , 6 , 6 ] [ Difficulty ] ;
 432: LD_ADDR_VAR 0 8
 436: PUSH
 437: LD_INT 5
 439: PUSH
 440: LD_INT 6
 442: PUSH
 443: LD_INT 6
 445: PUSH
 446: EMPTY
 447: LIST
 448: LIST
 449: LIST
 450: PUSH
 451: LD_OWVAR 67
 455: ARRAY
 456: ST_TO_ADDR
// MechLevel := [ 5 , 7 , 7 ] [ Difficulty ] ;
 457: LD_ADDR_VAR 0 9
 461: PUSH
 462: LD_INT 5
 464: PUSH
 465: LD_INT 7
 467: PUSH
 468: LD_INT 7
 470: PUSH
 471: EMPTY
 472: LIST
 473: LIST
 474: LIST
 475: PUSH
 476: LD_OWVAR 67
 480: ARRAY
 481: ST_TO_ADDR
// DocLevel := [ 5 , 5 , 6 ] [ Difficulty ] ;
 482: LD_ADDR_VAR 0 10
 486: PUSH
 487: LD_INT 5
 489: PUSH
 490: LD_INT 5
 492: PUSH
 493: LD_INT 6
 495: PUSH
 496: EMPTY
 497: LIST
 498: LIST
 499: LIST
 500: PUSH
 501: LD_OWVAR 67
 505: ARRAY
 506: ST_TO_ADDR
// Ru1_turrets := FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
 507: LD_ADDR_VAR 0 2
 511: PUSH
 512: LD_INT 22
 514: PUSH
 515: LD_INT 3
 517: PUSH
 518: EMPTY
 519: LIST
 520: LIST
 521: PUSH
 522: LD_INT 30
 524: PUSH
 525: LD_INT 32
 527: PUSH
 528: EMPTY
 529: LIST
 530: LIST
 531: PUSH
 532: EMPTY
 533: LIST
 534: LIST
 535: PPUSH
 536: CALL_OW 69
 540: PUSH
 541: LD_INT 22
 543: PUSH
 544: LD_INT 3
 546: PUSH
 547: EMPTY
 548: LIST
 549: LIST
 550: PUSH
 551: LD_INT 30
 553: PUSH
 554: LD_INT 31
 556: PUSH
 557: EMPTY
 558: LIST
 559: LIST
 560: PUSH
 561: EMPTY
 562: LIST
 563: LIST
 564: PPUSH
 565: CALL_OW 69
 569: ADD
 570: ST_TO_ADDR
// hc_importance = 0 ;
 571: LD_ADDR_OWVAR 32
 575: PUSH
 576: LD_INT 0
 578: ST_TO_ADDR
// for i in Ru1_Turrets do
 579: LD_ADDR_VAR 0 4
 583: PUSH
 584: LD_VAR 0 2
 588: PUSH
 589: FOR_IN
 590: IFFALSE 769
// begin if IsInUnit ( i ) = 0 then
 592: LD_VAR 0 4
 596: PPUSH
 597: CALL_OW 310
 601: PUSH
 602: LD_INT 0
 604: EQUAL
 605: IFFALSE 767
// begin uc_side = 3 ;
 607: LD_ADDR_OWVAR 20
 611: PUSH
 612: LD_INT 3
 614: ST_TO_ADDR
// uc_nation = 3 ;
 615: LD_ADDR_OWVAR 21
 619: PUSH
 620: LD_INT 3
 622: ST_TO_ADDR
// hc_gallery =  ;
 623: LD_ADDR_OWVAR 33
 627: PUSH
 628: LD_STRING 
 630: ST_TO_ADDR
// hc_name =  ;
 631: LD_ADDR_OWVAR 26
 635: PUSH
 636: LD_STRING 
 638: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 639: LD_ADDR_OWVAR 29
 643: PUSH
 644: LD_INT 9
 646: PPUSH
 647: LD_INT 11
 649: PPUSH
 650: CALL_OW 12
 654: PUSH
 655: LD_INT 10
 657: PPUSH
 658: LD_INT 12
 660: PPUSH
 661: CALL_OW 12
 665: PUSH
 666: EMPTY
 667: LIST
 668: LIST
 669: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
 670: LD_ADDR_OWVAR 31
 674: PUSH
 675: LD_VAR 0 7
 679: PUSH
 680: LD_INT 1
 682: PPUSH
 683: LD_INT 4
 685: PPUSH
 686: CALL_OW 12
 690: PUSH
 691: LD_INT 2
 693: PPUSH
 694: LD_INT 4
 696: PPUSH
 697: CALL_OW 12
 701: PUSH
 702: LD_INT 0
 704: PPUSH
 705: LD_INT 4
 707: PPUSH
 708: CALL_OW 12
 712: PUSH
 713: EMPTY
 714: LIST
 715: LIST
 716: LIST
 717: LIST
 718: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 719: LD_ADDR_OWVAR 27
 723: PUSH
 724: LD_INT 1
 726: PPUSH
 727: LD_INT 2
 729: PPUSH
 730: CALL_OW 12
 734: ST_TO_ADDR
// hc_class = 1 ;
 735: LD_ADDR_OWVAR 28
 739: PUSH
 740: LD_INT 1
 742: ST_TO_ADDR
// un := CreateHuman ;
 743: LD_ADDR_VAR 0 5
 747: PUSH
 748: CALL_OW 44
 752: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 753: LD_VAR 0 5
 757: PPUSH
 758: LD_VAR 0 4
 762: PPUSH
 763: CALL_OW 52
// end ; end ;
 767: GO 589
 769: POP
 770: POP
// Am1_turrets := FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_breastwork ] ] ) ;
 771: LD_ADDR_VAR 0 3
 775: PUSH
 776: LD_INT 22
 778: PUSH
 779: LD_INT 1
 781: PUSH
 782: EMPTY
 783: LIST
 784: LIST
 785: PUSH
 786: LD_INT 30
 788: PUSH
 789: LD_INT 32
 791: PUSH
 792: EMPTY
 793: LIST
 794: LIST
 795: PUSH
 796: EMPTY
 797: LIST
 798: LIST
 799: PPUSH
 800: CALL_OW 69
 804: PUSH
 805: LD_INT 22
 807: PUSH
 808: LD_INT 1
 810: PUSH
 811: EMPTY
 812: LIST
 813: LIST
 814: PUSH
 815: LD_INT 30
 817: PUSH
 818: LD_INT 31
 820: PUSH
 821: EMPTY
 822: LIST
 823: LIST
 824: PUSH
 825: EMPTY
 826: LIST
 827: LIST
 828: PPUSH
 829: CALL_OW 69
 833: ADD
 834: ST_TO_ADDR
// for i in Am1_turrets do
 835: LD_ADDR_VAR 0 4
 839: PUSH
 840: LD_VAR 0 3
 844: PUSH
 845: FOR_IN
 846: IFFALSE 1035
// begin if IsInUnit ( i ) = 0 then
 848: LD_VAR 0 4
 852: PPUSH
 853: CALL_OW 310
 857: PUSH
 858: LD_INT 0
 860: EQUAL
 861: IFFALSE 1033
// begin uc_side = 1 ;
 863: LD_ADDR_OWVAR 20
 867: PUSH
 868: LD_INT 1
 870: ST_TO_ADDR
// uc_nation = 1 ;
 871: LD_ADDR_OWVAR 21
 875: PUSH
 876: LD_INT 1
 878: ST_TO_ADDR
// hc_gallery =  ;
 879: LD_ADDR_OWVAR 33
 883: PUSH
 884: LD_STRING 
 886: ST_TO_ADDR
// hc_name =  ;
 887: LD_ADDR_OWVAR 26
 891: PUSH
 892: LD_STRING 
 894: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 895: LD_ADDR_OWVAR 29
 899: PUSH
 900: LD_INT 9
 902: PPUSH
 903: LD_INT 11
 905: PPUSH
 906: CALL_OW 12
 910: PUSH
 911: LD_INT 10
 913: PPUSH
 914: LD_INT 12
 916: PPUSH
 917: CALL_OW 12
 921: PUSH
 922: EMPTY
 923: LIST
 924: LIST
 925: ST_TO_ADDR
// hc_skills = [ 6 - Rand ( 0 , 2 ) , Rand ( 0 , 3 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
 926: LD_ADDR_OWVAR 31
 930: PUSH
 931: LD_INT 6
 933: PUSH
 934: LD_INT 0
 936: PPUSH
 937: LD_INT 2
 939: PPUSH
 940: CALL_OW 12
 944: MINUS
 945: PUSH
 946: LD_INT 0
 948: PPUSH
 949: LD_INT 3
 951: PPUSH
 952: CALL_OW 12
 956: PUSH
 957: LD_INT 0
 959: PPUSH
 960: LD_INT 3
 962: PPUSH
 963: CALL_OW 12
 967: PUSH
 968: LD_INT 0
 970: PPUSH
 971: LD_INT 2
 973: PPUSH
 974: CALL_OW 12
 978: PUSH
 979: EMPTY
 980: LIST
 981: LIST
 982: LIST
 983: LIST
 984: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 985: LD_ADDR_OWVAR 27
 989: PUSH
 990: LD_INT 1
 992: PPUSH
 993: LD_INT 2
 995: PPUSH
 996: CALL_OW 12
1000: ST_TO_ADDR
// hc_class = 1 ;
1001: LD_ADDR_OWVAR 28
1005: PUSH
1006: LD_INT 1
1008: ST_TO_ADDR
// un := CreateHuman ;
1009: LD_ADDR_VAR 0 5
1013: PUSH
1014: CALL_OW 44
1018: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1019: LD_VAR 0 5
1023: PPUSH
1024: LD_VAR 0 4
1028: PPUSH
1029: CALL_OW 52
// end ; end ;
1033: GO 845
1035: POP
1036: POP
// for i in depotUS1 do
1037: LD_ADDR_VAR 0 4
1041: PUSH
1042: LD_INT 532
1044: PUSH
1045: FOR_IN
1046: IFFALSE 1253
// begin l = 0 ;
1048: LD_ADDR_VAR 0 6
1052: PUSH
1053: LD_INT 0
1055: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1056: LD_VAR 0 4
1060: PPUSH
1061: CALL_OW 310
1065: PUSH
1066: LD_INT 0
1068: EQUAL
1069: IFFALSE 1251
// begin repeat begin uc_side = 1 ;
1071: LD_ADDR_OWVAR 20
1075: PUSH
1076: LD_INT 1
1078: ST_TO_ADDR
// uc_nation = 1 ;
1079: LD_ADDR_OWVAR 21
1083: PUSH
1084: LD_INT 1
1086: ST_TO_ADDR
// hc_gallery =  ;
1087: LD_ADDR_OWVAR 33
1091: PUSH
1092: LD_STRING 
1094: ST_TO_ADDR
// hc_name =  ;
1095: LD_ADDR_OWVAR 26
1099: PUSH
1100: LD_STRING 
1102: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1103: LD_ADDR_OWVAR 29
1107: PUSH
1108: LD_INT 9
1110: PPUSH
1111: LD_INT 11
1113: PPUSH
1114: CALL_OW 12
1118: PUSH
1119: LD_INT 10
1121: PPUSH
1122: LD_INT 12
1124: PPUSH
1125: CALL_OW 12
1129: PUSH
1130: EMPTY
1131: LIST
1132: LIST
1133: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 5 ) , 8 , Rand ( 2 , 6 ) , Rand ( 0 , 6 ) ] ;
1134: LD_ADDR_OWVAR 31
1138: PUSH
1139: LD_INT 1
1141: PPUSH
1142: LD_INT 5
1144: PPUSH
1145: CALL_OW 12
1149: PUSH
1150: LD_INT 8
1152: PUSH
1153: LD_INT 2
1155: PPUSH
1156: LD_INT 6
1158: PPUSH
1159: CALL_OW 12
1163: PUSH
1164: LD_INT 0
1166: PPUSH
1167: LD_INT 6
1169: PPUSH
1170: CALL_OW 12
1174: PUSH
1175: EMPTY
1176: LIST
1177: LIST
1178: LIST
1179: LIST
1180: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1181: LD_ADDR_OWVAR 27
1185: PUSH
1186: LD_INT 1
1188: PPUSH
1189: LD_INT 2
1191: PPUSH
1192: CALL_OW 12
1196: ST_TO_ADDR
// hc_class = 2 ;
1197: LD_ADDR_OWVAR 28
1201: PUSH
1202: LD_INT 2
1204: ST_TO_ADDR
// un = CreateHuman ;
1205: LD_ADDR_VAR 0 5
1209: PUSH
1210: CALL_OW 44
1214: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotUS1 ) ;
1215: LD_VAR 0 5
1219: PPUSH
1220: LD_INT 532
1222: PPUSH
1223: CALL_OW 52
// l = l + 1 ;
1227: LD_ADDR_VAR 0 6
1231: PUSH
1232: LD_VAR 0 6
1236: PUSH
1237: LD_INT 1
1239: PLUS
1240: ST_TO_ADDR
// end until l = 2 ;
1241: LD_VAR 0 6
1245: PUSH
1246: LD_INT 2
1248: EQUAL
1249: IFFALSE 1071
// end ; end ;
1251: GO 1045
1253: POP
1254: POP
// for i in depotRU1 do
1255: LD_ADDR_VAR 0 4
1259: PUSH
1260: LD_INT 238
1262: PUSH
1263: FOR_IN
1264: IFFALSE 1473
// begin l = 0 ;
1266: LD_ADDR_VAR 0 6
1270: PUSH
1271: LD_INT 0
1273: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1274: LD_VAR 0 4
1278: PPUSH
1279: CALL_OW 310
1283: PUSH
1284: LD_INT 0
1286: EQUAL
1287: IFFALSE 1471
// begin repeat begin uc_side = 3 ;
1289: LD_ADDR_OWVAR 20
1293: PUSH
1294: LD_INT 3
1296: ST_TO_ADDR
// uc_nation = 3 ;
1297: LD_ADDR_OWVAR 21
1301: PUSH
1302: LD_INT 3
1304: ST_TO_ADDR
// hc_gallery =  ;
1305: LD_ADDR_OWVAR 33
1309: PUSH
1310: LD_STRING 
1312: ST_TO_ADDR
// hc_name =  ;
1313: LD_ADDR_OWVAR 26
1317: PUSH
1318: LD_STRING 
1320: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1321: LD_ADDR_OWVAR 29
1325: PUSH
1326: LD_INT 9
1328: PPUSH
1329: LD_INT 11
1331: PPUSH
1332: CALL_OW 12
1336: PUSH
1337: LD_INT 10
1339: PPUSH
1340: LD_INT 12
1342: PPUSH
1343: CALL_OW 12
1347: PUSH
1348: EMPTY
1349: LIST
1350: LIST
1351: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1352: LD_ADDR_OWVAR 31
1356: PUSH
1357: LD_INT 1
1359: PPUSH
1360: LD_INT 3
1362: PPUSH
1363: CALL_OW 12
1367: PUSH
1368: LD_VAR 0 8
1372: PUSH
1373: LD_INT 2
1375: PPUSH
1376: LD_INT 4
1378: PPUSH
1379: CALL_OW 12
1383: PUSH
1384: LD_INT 0
1386: PPUSH
1387: LD_INT 3
1389: PPUSH
1390: CALL_OW 12
1394: PUSH
1395: EMPTY
1396: LIST
1397: LIST
1398: LIST
1399: LIST
1400: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1401: LD_ADDR_OWVAR 27
1405: PUSH
1406: LD_INT 1
1408: PPUSH
1409: LD_INT 2
1411: PPUSH
1412: CALL_OW 12
1416: ST_TO_ADDR
// hc_class = 2 ;
1417: LD_ADDR_OWVAR 28
1421: PUSH
1422: LD_INT 2
1424: ST_TO_ADDR
// un = CreateHuman ;
1425: LD_ADDR_VAR 0 5
1429: PUSH
1430: CALL_OW 44
1434: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU1 ) ;
1435: LD_VAR 0 5
1439: PPUSH
1440: LD_INT 238
1442: PPUSH
1443: CALL_OW 52
// l = l + 1 ;
1447: LD_ADDR_VAR 0 6
1451: PUSH
1452: LD_VAR 0 6
1456: PUSH
1457: LD_INT 1
1459: PLUS
1460: ST_TO_ADDR
// end until l = 2 ;
1461: LD_VAR 0 6
1465: PUSH
1466: LD_INT 2
1468: EQUAL
1469: IFFALSE 1289
// end ; end ;
1471: GO 1263
1473: POP
1474: POP
// for i in depotRU2 do
1475: LD_ADDR_VAR 0 4
1479: PUSH
1480: LD_INT 2
1482: PUSH
1483: FOR_IN
1484: IFFALSE 1693
// begin l = 0 ;
1486: LD_ADDR_VAR 0 6
1490: PUSH
1491: LD_INT 0
1493: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1494: LD_VAR 0 4
1498: PPUSH
1499: CALL_OW 310
1503: PUSH
1504: LD_INT 0
1506: EQUAL
1507: IFFALSE 1691
// begin repeat begin uc_side = 3 ;
1509: LD_ADDR_OWVAR 20
1513: PUSH
1514: LD_INT 3
1516: ST_TO_ADDR
// uc_nation = 3 ;
1517: LD_ADDR_OWVAR 21
1521: PUSH
1522: LD_INT 3
1524: ST_TO_ADDR
// hc_gallery =  ;
1525: LD_ADDR_OWVAR 33
1529: PUSH
1530: LD_STRING 
1532: ST_TO_ADDR
// hc_name =  ;
1533: LD_ADDR_OWVAR 26
1537: PUSH
1538: LD_STRING 
1540: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1541: LD_ADDR_OWVAR 29
1545: PUSH
1546: LD_INT 9
1548: PPUSH
1549: LD_INT 11
1551: PPUSH
1552: CALL_OW 12
1556: PUSH
1557: LD_INT 10
1559: PPUSH
1560: LD_INT 12
1562: PPUSH
1563: CALL_OW 12
1567: PUSH
1568: EMPTY
1569: LIST
1570: LIST
1571: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1572: LD_ADDR_OWVAR 31
1576: PUSH
1577: LD_INT 1
1579: PPUSH
1580: LD_INT 3
1582: PPUSH
1583: CALL_OW 12
1587: PUSH
1588: LD_VAR 0 8
1592: PUSH
1593: LD_INT 2
1595: PPUSH
1596: LD_INT 4
1598: PPUSH
1599: CALL_OW 12
1603: PUSH
1604: LD_INT 0
1606: PPUSH
1607: LD_INT 3
1609: PPUSH
1610: CALL_OW 12
1614: PUSH
1615: EMPTY
1616: LIST
1617: LIST
1618: LIST
1619: LIST
1620: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1621: LD_ADDR_OWVAR 27
1625: PUSH
1626: LD_INT 1
1628: PPUSH
1629: LD_INT 2
1631: PPUSH
1632: CALL_OW 12
1636: ST_TO_ADDR
// hc_class = 2 ;
1637: LD_ADDR_OWVAR 28
1641: PUSH
1642: LD_INT 2
1644: ST_TO_ADDR
// un = CreateHuman ;
1645: LD_ADDR_VAR 0 5
1649: PUSH
1650: CALL_OW 44
1654: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU2 ) ;
1655: LD_VAR 0 5
1659: PPUSH
1660: LD_INT 2
1662: PPUSH
1663: CALL_OW 52
// l = l + 1 ;
1667: LD_ADDR_VAR 0 6
1671: PUSH
1672: LD_VAR 0 6
1676: PUSH
1677: LD_INT 1
1679: PLUS
1680: ST_TO_ADDR
// end until l = 2 ;
1681: LD_VAR 0 6
1685: PUSH
1686: LD_INT 2
1688: EQUAL
1689: IFFALSE 1509
// end ; end ;
1691: GO 1483
1693: POP
1694: POP
// for i in depotRU3 do
1695: LD_ADDR_VAR 0 4
1699: PUSH
1700: LD_INT 138
1702: PUSH
1703: FOR_IN
1704: IFFALSE 1913
// begin l = 0 ;
1706: LD_ADDR_VAR 0 6
1710: PUSH
1711: LD_INT 0
1713: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1714: LD_VAR 0 4
1718: PPUSH
1719: CALL_OW 310
1723: PUSH
1724: LD_INT 0
1726: EQUAL
1727: IFFALSE 1911
// begin repeat begin uc_side = 3 ;
1729: LD_ADDR_OWVAR 20
1733: PUSH
1734: LD_INT 3
1736: ST_TO_ADDR
// uc_nation = 3 ;
1737: LD_ADDR_OWVAR 21
1741: PUSH
1742: LD_INT 3
1744: ST_TO_ADDR
// hc_gallery =  ;
1745: LD_ADDR_OWVAR 33
1749: PUSH
1750: LD_STRING 
1752: ST_TO_ADDR
// hc_name =  ;
1753: LD_ADDR_OWVAR 26
1757: PUSH
1758: LD_STRING 
1760: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1761: LD_ADDR_OWVAR 29
1765: PUSH
1766: LD_INT 9
1768: PPUSH
1769: LD_INT 11
1771: PPUSH
1772: CALL_OW 12
1776: PUSH
1777: LD_INT 10
1779: PPUSH
1780: LD_INT 12
1782: PPUSH
1783: CALL_OW 12
1787: PUSH
1788: EMPTY
1789: LIST
1790: LIST
1791: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1792: LD_ADDR_OWVAR 31
1796: PUSH
1797: LD_INT 1
1799: PPUSH
1800: LD_INT 3
1802: PPUSH
1803: CALL_OW 12
1807: PUSH
1808: LD_VAR 0 8
1812: PUSH
1813: LD_INT 2
1815: PPUSH
1816: LD_INT 4
1818: PPUSH
1819: CALL_OW 12
1823: PUSH
1824: LD_INT 0
1826: PPUSH
1827: LD_INT 3
1829: PPUSH
1830: CALL_OW 12
1834: PUSH
1835: EMPTY
1836: LIST
1837: LIST
1838: LIST
1839: LIST
1840: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1841: LD_ADDR_OWVAR 27
1845: PUSH
1846: LD_INT 1
1848: PPUSH
1849: LD_INT 2
1851: PPUSH
1852: CALL_OW 12
1856: ST_TO_ADDR
// hc_class = 2 ;
1857: LD_ADDR_OWVAR 28
1861: PUSH
1862: LD_INT 2
1864: ST_TO_ADDR
// un = CreateHuman ;
1865: LD_ADDR_VAR 0 5
1869: PUSH
1870: CALL_OW 44
1874: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU3 ) ;
1875: LD_VAR 0 5
1879: PPUSH
1880: LD_INT 138
1882: PPUSH
1883: CALL_OW 52
// l = l + 1 ;
1887: LD_ADDR_VAR 0 6
1891: PUSH
1892: LD_VAR 0 6
1896: PUSH
1897: LD_INT 1
1899: PLUS
1900: ST_TO_ADDR
// end until l = 2 ;
1901: LD_VAR 0 6
1905: PUSH
1906: LD_INT 2
1908: EQUAL
1909: IFFALSE 1729
// end ; end ;
1911: GO 1703
1913: POP
1914: POP
// for i in depotRU4 do
1915: LD_ADDR_VAR 0 4
1919: PUSH
1920: LD_INT 189
1922: PUSH
1923: FOR_IN
1924: IFFALSE 2133
// begin l = 0 ;
1926: LD_ADDR_VAR 0 6
1930: PUSH
1931: LD_INT 0
1933: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1934: LD_VAR 0 4
1938: PPUSH
1939: CALL_OW 310
1943: PUSH
1944: LD_INT 0
1946: EQUAL
1947: IFFALSE 2131
// begin repeat begin uc_side = 3 ;
1949: LD_ADDR_OWVAR 20
1953: PUSH
1954: LD_INT 3
1956: ST_TO_ADDR
// uc_nation = 3 ;
1957: LD_ADDR_OWVAR 21
1961: PUSH
1962: LD_INT 3
1964: ST_TO_ADDR
// hc_gallery =  ;
1965: LD_ADDR_OWVAR 33
1969: PUSH
1970: LD_STRING 
1972: ST_TO_ADDR
// hc_name =  ;
1973: LD_ADDR_OWVAR 26
1977: PUSH
1978: LD_STRING 
1980: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1981: LD_ADDR_OWVAR 29
1985: PUSH
1986: LD_INT 9
1988: PPUSH
1989: LD_INT 11
1991: PPUSH
1992: CALL_OW 12
1996: PUSH
1997: LD_INT 10
1999: PPUSH
2000: LD_INT 12
2002: PPUSH
2003: CALL_OW 12
2007: PUSH
2008: EMPTY
2009: LIST
2010: LIST
2011: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2012: LD_ADDR_OWVAR 31
2016: PUSH
2017: LD_INT 1
2019: PPUSH
2020: LD_INT 3
2022: PPUSH
2023: CALL_OW 12
2027: PUSH
2028: LD_VAR 0 8
2032: PUSH
2033: LD_INT 2
2035: PPUSH
2036: LD_INT 4
2038: PPUSH
2039: CALL_OW 12
2043: PUSH
2044: LD_INT 0
2046: PPUSH
2047: LD_INT 3
2049: PPUSH
2050: CALL_OW 12
2054: PUSH
2055: EMPTY
2056: LIST
2057: LIST
2058: LIST
2059: LIST
2060: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2061: LD_ADDR_OWVAR 27
2065: PUSH
2066: LD_INT 1
2068: PPUSH
2069: LD_INT 2
2071: PPUSH
2072: CALL_OW 12
2076: ST_TO_ADDR
// hc_class = 2 ;
2077: LD_ADDR_OWVAR 28
2081: PUSH
2082: LD_INT 2
2084: ST_TO_ADDR
// un = CreateHuman ;
2085: LD_ADDR_VAR 0 5
2089: PUSH
2090: CALL_OW 44
2094: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU4 ) ;
2095: LD_VAR 0 5
2099: PPUSH
2100: LD_INT 189
2102: PPUSH
2103: CALL_OW 52
// l = l + 1 ;
2107: LD_ADDR_VAR 0 6
2111: PUSH
2112: LD_VAR 0 6
2116: PUSH
2117: LD_INT 1
2119: PLUS
2120: ST_TO_ADDR
// end until l = 2 ;
2121: LD_VAR 0 6
2125: PUSH
2126: LD_INT 2
2128: EQUAL
2129: IFFALSE 1949
// end ; end ;
2131: GO 1923
2133: POP
2134: POP
// for i in armouryRU1 do
2135: LD_ADDR_VAR 0 4
2139: PUSH
2140: LD_INT 59
2142: PUSH
2143: FOR_IN
2144: IFFALSE 2370
// begin l = 0 ;
2146: LD_ADDR_VAR 0 6
2150: PUSH
2151: LD_INT 0
2153: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2154: LD_VAR 0 4
2158: PPUSH
2159: CALL_OW 310
2163: PUSH
2164: LD_INT 0
2166: EQUAL
2167: IFFALSE 2368
// begin repeat begin uc_side = 3 ;
2169: LD_ADDR_OWVAR 20
2173: PUSH
2174: LD_INT 3
2176: ST_TO_ADDR
// uc_nation = 3 ;
2177: LD_ADDR_OWVAR 21
2181: PUSH
2182: LD_INT 3
2184: ST_TO_ADDR
// hc_gallery =  ;
2185: LD_ADDR_OWVAR 33
2189: PUSH
2190: LD_STRING 
2192: ST_TO_ADDR
// hc_name =  ;
2193: LD_ADDR_OWVAR 26
2197: PUSH
2198: LD_STRING 
2200: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2201: LD_ADDR_OWVAR 29
2205: PUSH
2206: LD_INT 9
2208: PPUSH
2209: LD_INT 11
2211: PPUSH
2212: CALL_OW 12
2216: PUSH
2217: LD_INT 10
2219: PPUSH
2220: LD_INT 12
2222: PPUSH
2223: CALL_OW 12
2227: PUSH
2228: EMPTY
2229: LIST
2230: LIST
2231: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2232: LD_ADDR_OWVAR 31
2236: PUSH
2237: LD_VAR 0 7
2241: PUSH
2242: LD_INT 1
2244: PPUSH
2245: LD_INT 3
2247: PPUSH
2248: CALL_OW 12
2252: PUSH
2253: LD_INT 2
2255: PPUSH
2256: LD_INT 4
2258: PPUSH
2259: CALL_OW 12
2263: PUSH
2264: LD_INT 0
2266: PPUSH
2267: LD_INT 3
2269: PPUSH
2270: CALL_OW 12
2274: PUSH
2275: EMPTY
2276: LIST
2277: LIST
2278: LIST
2279: LIST
2280: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2281: LD_ADDR_OWVAR 27
2285: PUSH
2286: LD_INT 1
2288: PPUSH
2289: LD_INT 2
2291: PPUSH
2292: CALL_OW 12
2296: ST_TO_ADDR
// hc_class = 1 ;
2297: LD_ADDR_OWVAR 28
2301: PUSH
2302: LD_INT 1
2304: ST_TO_ADDR
// un = CreateHuman ;
2305: LD_ADDR_VAR 0 5
2309: PUSH
2310: CALL_OW 44
2314: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU1 ) ;
2315: LD_VAR 0 5
2319: PPUSH
2320: LD_INT 59
2322: PPUSH
2323: CALL_OW 52
// l = l + 1 ;
2327: LD_ADDR_VAR 0 6
2331: PUSH
2332: LD_VAR 0 6
2336: PUSH
2337: LD_INT 1
2339: PLUS
2340: ST_TO_ADDR
// end until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2341: LD_VAR 0 6
2345: PUSH
2346: LD_INT 3
2348: PUSH
2349: LD_INT 4
2351: PUSH
2352: LD_INT 4
2354: PUSH
2355: EMPTY
2356: LIST
2357: LIST
2358: LIST
2359: PUSH
2360: LD_OWVAR 67
2364: ARRAY
2365: EQUAL
2366: IFFALSE 2169
// end ; end ;
2368: GO 2143
2370: POP
2371: POP
// for i in armouryRU2 do
2372: LD_ADDR_VAR 0 4
2376: PUSH
2377: LD_INT 18
2379: PUSH
2380: FOR_IN
2381: IFFALSE 2607
// begin l = 0 ;
2383: LD_ADDR_VAR 0 6
2387: PUSH
2388: LD_INT 0
2390: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2391: LD_VAR 0 4
2395: PPUSH
2396: CALL_OW 310
2400: PUSH
2401: LD_INT 0
2403: EQUAL
2404: IFFALSE 2605
// begin repeat begin uc_side = 3 ;
2406: LD_ADDR_OWVAR 20
2410: PUSH
2411: LD_INT 3
2413: ST_TO_ADDR
// uc_nation = 3 ;
2414: LD_ADDR_OWVAR 21
2418: PUSH
2419: LD_INT 3
2421: ST_TO_ADDR
// hc_gallery =  ;
2422: LD_ADDR_OWVAR 33
2426: PUSH
2427: LD_STRING 
2429: ST_TO_ADDR
// hc_name =  ;
2430: LD_ADDR_OWVAR 26
2434: PUSH
2435: LD_STRING 
2437: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2438: LD_ADDR_OWVAR 29
2442: PUSH
2443: LD_INT 9
2445: PPUSH
2446: LD_INT 11
2448: PPUSH
2449: CALL_OW 12
2453: PUSH
2454: LD_INT 10
2456: PPUSH
2457: LD_INT 12
2459: PPUSH
2460: CALL_OW 12
2464: PUSH
2465: EMPTY
2466: LIST
2467: LIST
2468: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2469: LD_ADDR_OWVAR 31
2473: PUSH
2474: LD_VAR 0 7
2478: PUSH
2479: LD_INT 1
2481: PPUSH
2482: LD_INT 3
2484: PPUSH
2485: CALL_OW 12
2489: PUSH
2490: LD_INT 2
2492: PPUSH
2493: LD_INT 4
2495: PPUSH
2496: CALL_OW 12
2500: PUSH
2501: LD_INT 0
2503: PPUSH
2504: LD_INT 3
2506: PPUSH
2507: CALL_OW 12
2511: PUSH
2512: EMPTY
2513: LIST
2514: LIST
2515: LIST
2516: LIST
2517: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2518: LD_ADDR_OWVAR 27
2522: PUSH
2523: LD_INT 1
2525: PPUSH
2526: LD_INT 2
2528: PPUSH
2529: CALL_OW 12
2533: ST_TO_ADDR
// hc_class = 1 ;
2534: LD_ADDR_OWVAR 28
2538: PUSH
2539: LD_INT 1
2541: ST_TO_ADDR
// un = CreateHuman ;
2542: LD_ADDR_VAR 0 5
2546: PUSH
2547: CALL_OW 44
2551: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU2 ) ;
2552: LD_VAR 0 5
2556: PPUSH
2557: LD_INT 18
2559: PPUSH
2560: CALL_OW 52
// l = l + 1 ;
2564: LD_ADDR_VAR 0 6
2568: PUSH
2569: LD_VAR 0 6
2573: PUSH
2574: LD_INT 1
2576: PLUS
2577: ST_TO_ADDR
// end until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2578: LD_VAR 0 6
2582: PUSH
2583: LD_INT 3
2585: PUSH
2586: LD_INT 4
2588: PUSH
2589: LD_INT 4
2591: PUSH
2592: EMPTY
2593: LIST
2594: LIST
2595: LIST
2596: PUSH
2597: LD_OWVAR 67
2601: ARRAY
2602: EQUAL
2603: IFFALSE 2406
// end ; end ;
2605: GO 2380
2607: POP
2608: POP
// for i in armouryRU3 do
2609: LD_ADDR_VAR 0 4
2613: PUSH
2614: LD_INT 191
2616: PUSH
2617: FOR_IN
2618: IFFALSE 2844
// begin l = 0 ;
2620: LD_ADDR_VAR 0 6
2624: PUSH
2625: LD_INT 0
2627: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2628: LD_VAR 0 4
2632: PPUSH
2633: CALL_OW 310
2637: PUSH
2638: LD_INT 0
2640: EQUAL
2641: IFFALSE 2842
// begin repeat begin uc_side = 3 ;
2643: LD_ADDR_OWVAR 20
2647: PUSH
2648: LD_INT 3
2650: ST_TO_ADDR
// uc_nation = 3 ;
2651: LD_ADDR_OWVAR 21
2655: PUSH
2656: LD_INT 3
2658: ST_TO_ADDR
// hc_gallery =  ;
2659: LD_ADDR_OWVAR 33
2663: PUSH
2664: LD_STRING 
2666: ST_TO_ADDR
// hc_name =  ;
2667: LD_ADDR_OWVAR 26
2671: PUSH
2672: LD_STRING 
2674: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2675: LD_ADDR_OWVAR 29
2679: PUSH
2680: LD_INT 9
2682: PPUSH
2683: LD_INT 11
2685: PPUSH
2686: CALL_OW 12
2690: PUSH
2691: LD_INT 10
2693: PPUSH
2694: LD_INT 12
2696: PPUSH
2697: CALL_OW 12
2701: PUSH
2702: EMPTY
2703: LIST
2704: LIST
2705: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2706: LD_ADDR_OWVAR 31
2710: PUSH
2711: LD_VAR 0 7
2715: PUSH
2716: LD_INT 1
2718: PPUSH
2719: LD_INT 3
2721: PPUSH
2722: CALL_OW 12
2726: PUSH
2727: LD_INT 2
2729: PPUSH
2730: LD_INT 4
2732: PPUSH
2733: CALL_OW 12
2737: PUSH
2738: LD_INT 0
2740: PPUSH
2741: LD_INT 3
2743: PPUSH
2744: CALL_OW 12
2748: PUSH
2749: EMPTY
2750: LIST
2751: LIST
2752: LIST
2753: LIST
2754: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2755: LD_ADDR_OWVAR 27
2759: PUSH
2760: LD_INT 1
2762: PPUSH
2763: LD_INT 2
2765: PPUSH
2766: CALL_OW 12
2770: ST_TO_ADDR
// hc_class = 1 ;
2771: LD_ADDR_OWVAR 28
2775: PUSH
2776: LD_INT 1
2778: ST_TO_ADDR
// un = CreateHuman ;
2779: LD_ADDR_VAR 0 5
2783: PUSH
2784: CALL_OW 44
2788: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU3 ) ;
2789: LD_VAR 0 5
2793: PPUSH
2794: LD_INT 191
2796: PPUSH
2797: CALL_OW 52
// l = l + 1 ;
2801: LD_ADDR_VAR 0 6
2805: PUSH
2806: LD_VAR 0 6
2810: PUSH
2811: LD_INT 1
2813: PLUS
2814: ST_TO_ADDR
// end until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2815: LD_VAR 0 6
2819: PUSH
2820: LD_INT 3
2822: PUSH
2823: LD_INT 4
2825: PUSH
2826: LD_INT 4
2828: PUSH
2829: EMPTY
2830: LIST
2831: LIST
2832: LIST
2833: PUSH
2834: LD_OWVAR 67
2838: ARRAY
2839: EQUAL
2840: IFFALSE 2643
// end ; end ;
2842: GO 2617
2844: POP
2845: POP
// for i in labRU1 do
2846: LD_ADDR_VAR 0 4
2850: PUSH
2851: LD_INT 599
2853: PUSH
2854: FOR_IN
2855: IFFALSE 3064
// begin l = 0 ;
2857: LD_ADDR_VAR 0 6
2861: PUSH
2862: LD_INT 0
2864: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2865: LD_VAR 0 4
2869: PPUSH
2870: CALL_OW 310
2874: PUSH
2875: LD_INT 0
2877: EQUAL
2878: IFFALSE 3062
// begin repeat begin uc_side = 3 ;
2880: LD_ADDR_OWVAR 20
2884: PUSH
2885: LD_INT 3
2887: ST_TO_ADDR
// uc_nation = 3 ;
2888: LD_ADDR_OWVAR 21
2892: PUSH
2893: LD_INT 3
2895: ST_TO_ADDR
// hc_gallery =  ;
2896: LD_ADDR_OWVAR 33
2900: PUSH
2901: LD_STRING 
2903: ST_TO_ADDR
// hc_name =  ;
2904: LD_ADDR_OWVAR 26
2908: PUSH
2909: LD_STRING 
2911: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2912: LD_ADDR_OWVAR 29
2916: PUSH
2917: LD_INT 9
2919: PPUSH
2920: LD_INT 11
2922: PPUSH
2923: CALL_OW 12
2927: PUSH
2928: LD_INT 10
2930: PPUSH
2931: LD_INT 12
2933: PPUSH
2934: CALL_OW 12
2938: PUSH
2939: EMPTY
2940: LIST
2941: LIST
2942: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , DocLevel ] ;
2943: LD_ADDR_OWVAR 31
2947: PUSH
2948: LD_INT 1
2950: PPUSH
2951: LD_INT 3
2953: PPUSH
2954: CALL_OW 12
2958: PUSH
2959: LD_INT 1
2961: PPUSH
2962: LD_INT 4
2964: PPUSH
2965: CALL_OW 12
2969: PUSH
2970: LD_INT 2
2972: PPUSH
2973: LD_INT 4
2975: PPUSH
2976: CALL_OW 12
2980: PUSH
2981: LD_VAR 0 10
2985: PUSH
2986: EMPTY
2987: LIST
2988: LIST
2989: LIST
2990: LIST
2991: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2992: LD_ADDR_OWVAR 27
2996: PUSH
2997: LD_INT 1
2999: PPUSH
3000: LD_INT 2
3002: PPUSH
3003: CALL_OW 12
3007: ST_TO_ADDR
// hc_class = 4 ;
3008: LD_ADDR_OWVAR 28
3012: PUSH
3013: LD_INT 4
3015: ST_TO_ADDR
// un = CreateHuman ;
3016: LD_ADDR_VAR 0 5
3020: PUSH
3021: CALL_OW 44
3025: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU1 ) ;
3026: LD_VAR 0 5
3030: PPUSH
3031: LD_INT 599
3033: PPUSH
3034: CALL_OW 52
// l = l + 1 ;
3038: LD_ADDR_VAR 0 6
3042: PUSH
3043: LD_VAR 0 6
3047: PUSH
3048: LD_INT 1
3050: PLUS
3051: ST_TO_ADDR
// end until l = 1 ;
3052: LD_VAR 0 6
3056: PUSH
3057: LD_INT 1
3059: EQUAL
3060: IFFALSE 2880
// end ; end ;
3062: GO 2854
3064: POP
3065: POP
// for i in labRU2 do
3066: LD_ADDR_VAR 0 4
3070: PUSH
3071: LD_INT 596
3073: PUSH
3074: FOR_IN
3075: IFFALSE 3284
// begin l = 0 ;
3077: LD_ADDR_VAR 0 6
3081: PUSH
3082: LD_INT 0
3084: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3085: LD_VAR 0 4
3089: PPUSH
3090: CALL_OW 310
3094: PUSH
3095: LD_INT 0
3097: EQUAL
3098: IFFALSE 3282
// begin repeat begin uc_side = 3 ;
3100: LD_ADDR_OWVAR 20
3104: PUSH
3105: LD_INT 3
3107: ST_TO_ADDR
// uc_nation = 3 ;
3108: LD_ADDR_OWVAR 21
3112: PUSH
3113: LD_INT 3
3115: ST_TO_ADDR
// hc_gallery =  ;
3116: LD_ADDR_OWVAR 33
3120: PUSH
3121: LD_STRING 
3123: ST_TO_ADDR
// hc_name =  ;
3124: LD_ADDR_OWVAR 26
3128: PUSH
3129: LD_STRING 
3131: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3132: LD_ADDR_OWVAR 29
3136: PUSH
3137: LD_INT 9
3139: PPUSH
3140: LD_INT 11
3142: PPUSH
3143: CALL_OW 12
3147: PUSH
3148: LD_INT 10
3150: PPUSH
3151: LD_INT 12
3153: PPUSH
3154: CALL_OW 12
3158: PUSH
3159: EMPTY
3160: LIST
3161: LIST
3162: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , DocLevel ] ;
3163: LD_ADDR_OWVAR 31
3167: PUSH
3168: LD_INT 1
3170: PPUSH
3171: LD_INT 3
3173: PPUSH
3174: CALL_OW 12
3178: PUSH
3179: LD_INT 1
3181: PPUSH
3182: LD_INT 4
3184: PPUSH
3185: CALL_OW 12
3189: PUSH
3190: LD_INT 2
3192: PPUSH
3193: LD_INT 4
3195: PPUSH
3196: CALL_OW 12
3200: PUSH
3201: LD_VAR 0 10
3205: PUSH
3206: EMPTY
3207: LIST
3208: LIST
3209: LIST
3210: LIST
3211: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3212: LD_ADDR_OWVAR 27
3216: PUSH
3217: LD_INT 1
3219: PPUSH
3220: LD_INT 2
3222: PPUSH
3223: CALL_OW 12
3227: ST_TO_ADDR
// hc_class = 4 ;
3228: LD_ADDR_OWVAR 28
3232: PUSH
3233: LD_INT 4
3235: ST_TO_ADDR
// un = CreateHuman ;
3236: LD_ADDR_VAR 0 5
3240: PUSH
3241: CALL_OW 44
3245: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU2 ) ;
3246: LD_VAR 0 5
3250: PPUSH
3251: LD_INT 596
3253: PPUSH
3254: CALL_OW 52
// l = l + 1 ;
3258: LD_ADDR_VAR 0 6
3262: PUSH
3263: LD_VAR 0 6
3267: PUSH
3268: LD_INT 1
3270: PLUS
3271: ST_TO_ADDR
// end until l = 1 ;
3272: LD_VAR 0 6
3276: PUSH
3277: LD_INT 1
3279: EQUAL
3280: IFFALSE 3100
// end ; end ;
3282: GO 3074
3284: POP
3285: POP
// for i in labRU3 do
3286: LD_ADDR_VAR 0 4
3290: PUSH
3291: LD_INT 128
3293: PUSH
3294: FOR_IN
3295: IFFALSE 3504
// begin l = 0 ;
3297: LD_ADDR_VAR 0 6
3301: PUSH
3302: LD_INT 0
3304: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3305: LD_VAR 0 4
3309: PPUSH
3310: CALL_OW 310
3314: PUSH
3315: LD_INT 0
3317: EQUAL
3318: IFFALSE 3502
// begin repeat begin uc_side = 3 ;
3320: LD_ADDR_OWVAR 20
3324: PUSH
3325: LD_INT 3
3327: ST_TO_ADDR
// uc_nation = 3 ;
3328: LD_ADDR_OWVAR 21
3332: PUSH
3333: LD_INT 3
3335: ST_TO_ADDR
// hc_gallery =  ;
3336: LD_ADDR_OWVAR 33
3340: PUSH
3341: LD_STRING 
3343: ST_TO_ADDR
// hc_name =  ;
3344: LD_ADDR_OWVAR 26
3348: PUSH
3349: LD_STRING 
3351: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3352: LD_ADDR_OWVAR 29
3356: PUSH
3357: LD_INT 9
3359: PPUSH
3360: LD_INT 11
3362: PPUSH
3363: CALL_OW 12
3367: PUSH
3368: LD_INT 10
3370: PPUSH
3371: LD_INT 12
3373: PPUSH
3374: CALL_OW 12
3378: PUSH
3379: EMPTY
3380: LIST
3381: LIST
3382: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , DocLevel ] ;
3383: LD_ADDR_OWVAR 31
3387: PUSH
3388: LD_INT 1
3390: PPUSH
3391: LD_INT 3
3393: PPUSH
3394: CALL_OW 12
3398: PUSH
3399: LD_INT 1
3401: PPUSH
3402: LD_INT 4
3404: PPUSH
3405: CALL_OW 12
3409: PUSH
3410: LD_INT 2
3412: PPUSH
3413: LD_INT 4
3415: PPUSH
3416: CALL_OW 12
3420: PUSH
3421: LD_VAR 0 10
3425: PUSH
3426: EMPTY
3427: LIST
3428: LIST
3429: LIST
3430: LIST
3431: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3432: LD_ADDR_OWVAR 27
3436: PUSH
3437: LD_INT 1
3439: PPUSH
3440: LD_INT 2
3442: PPUSH
3443: CALL_OW 12
3447: ST_TO_ADDR
// hc_class = 4 ;
3448: LD_ADDR_OWVAR 28
3452: PUSH
3453: LD_INT 4
3455: ST_TO_ADDR
// un = CreateHuman ;
3456: LD_ADDR_VAR 0 5
3460: PUSH
3461: CALL_OW 44
3465: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU3 ) ;
3466: LD_VAR 0 5
3470: PPUSH
3471: LD_INT 128
3473: PPUSH
3474: CALL_OW 52
// l = l + 1 ;
3478: LD_ADDR_VAR 0 6
3482: PUSH
3483: LD_VAR 0 6
3487: PUSH
3488: LD_INT 1
3490: PLUS
3491: ST_TO_ADDR
// end until l = 1 ;
3492: LD_VAR 0 6
3496: PUSH
3497: LD_INT 1
3499: EQUAL
3500: IFFALSE 3320
// end ; end ;
3502: GO 3294
3504: POP
3505: POP
// for i in factoryRU1 do
3506: LD_ADDR_VAR 0 4
3510: PUSH
3511: LD_INT 88
3513: PUSH
3514: FOR_IN
3515: IFFALSE 3745
// begin l = 0 ;
3517: LD_ADDR_VAR 0 6
3521: PUSH
3522: LD_INT 0
3524: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3525: LD_VAR 0 4
3529: PPUSH
3530: CALL_OW 310
3534: PUSH
3535: LD_INT 0
3537: EQUAL
3538: IFFALSE 3743
// begin repeat begin uc_side = 3 ;
3540: LD_ADDR_OWVAR 20
3544: PUSH
3545: LD_INT 3
3547: ST_TO_ADDR
// uc_nation = 3 ;
3548: LD_ADDR_OWVAR 21
3552: PUSH
3553: LD_INT 3
3555: ST_TO_ADDR
// hc_gallery =  ;
3556: LD_ADDR_OWVAR 33
3560: PUSH
3561: LD_STRING 
3563: ST_TO_ADDR
// hc_name =  ;
3564: LD_ADDR_OWVAR 26
3568: PUSH
3569: LD_STRING 
3571: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3572: LD_ADDR_OWVAR 29
3576: PUSH
3577: LD_INT 9
3579: PPUSH
3580: LD_INT 11
3582: PPUSH
3583: CALL_OW 12
3587: PUSH
3588: LD_INT 10
3590: PPUSH
3591: LD_INT 12
3593: PPUSH
3594: CALL_OW 12
3598: PUSH
3599: EMPTY
3600: LIST
3601: LIST
3602: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Mechlevel , Rand ( 1 , 5 ) ] ;
3603: LD_ADDR_OWVAR 31
3607: PUSH
3608: LD_INT 1
3610: PPUSH
3611: LD_INT 3
3613: PPUSH
3614: CALL_OW 12
3618: PUSH
3619: LD_INT 1
3621: PPUSH
3622: LD_INT 4
3624: PPUSH
3625: CALL_OW 12
3629: PUSH
3630: LD_VAR 0 9
3634: PUSH
3635: LD_INT 1
3637: PPUSH
3638: LD_INT 5
3640: PPUSH
3641: CALL_OW 12
3645: PUSH
3646: EMPTY
3647: LIST
3648: LIST
3649: LIST
3650: LIST
3651: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3652: LD_ADDR_OWVAR 27
3656: PUSH
3657: LD_INT 1
3659: PPUSH
3660: LD_INT 2
3662: PPUSH
3663: CALL_OW 12
3667: ST_TO_ADDR
// hc_class = 3 ;
3668: LD_ADDR_OWVAR 28
3672: PUSH
3673: LD_INT 3
3675: ST_TO_ADDR
// un = CreateHuman ;
3676: LD_ADDR_VAR 0 5
3680: PUSH
3681: CALL_OW 44
3685: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU1 ) ;
3686: LD_VAR 0 5
3690: PPUSH
3691: LD_INT 88
3693: PPUSH
3694: CALL_OW 52
// l = l + 1 ;
3698: LD_ADDR_VAR 0 6
3702: PUSH
3703: LD_VAR 0 6
3707: PUSH
3708: LD_INT 1
3710: PLUS
3711: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] + 2 ;
3712: LD_VAR 0 6
3716: PUSH
3717: LD_INT 1
3719: PUSH
3720: LD_INT 2
3722: PUSH
3723: LD_INT 2
3725: PUSH
3726: EMPTY
3727: LIST
3728: LIST
3729: LIST
3730: PUSH
3731: LD_OWVAR 67
3735: ARRAY
3736: PUSH
3737: LD_INT 2
3739: PLUS
3740: EQUAL
3741: IFFALSE 3540
// end ; end ;
3743: GO 3514
3745: POP
3746: POP
// for i in factoryRU2 do
3747: LD_ADDR_VAR 0 4
3751: PUSH
3752: LD_INT 8
3754: PUSH
3755: FOR_IN
3756: IFFALSE 3980
// begin l = 0 ;
3758: LD_ADDR_VAR 0 6
3762: PUSH
3763: LD_INT 0
3765: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3766: LD_VAR 0 4
3770: PPUSH
3771: CALL_OW 310
3775: PUSH
3776: LD_INT 0
3778: EQUAL
3779: IFFALSE 3978
// begin repeat begin uc_side = 3 ;
3781: LD_ADDR_OWVAR 20
3785: PUSH
3786: LD_INT 3
3788: ST_TO_ADDR
// uc_nation = 3 ;
3789: LD_ADDR_OWVAR 21
3793: PUSH
3794: LD_INT 3
3796: ST_TO_ADDR
// hc_gallery =  ;
3797: LD_ADDR_OWVAR 33
3801: PUSH
3802: LD_STRING 
3804: ST_TO_ADDR
// hc_name =  ;
3805: LD_ADDR_OWVAR 26
3809: PUSH
3810: LD_STRING 
3812: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3813: LD_ADDR_OWVAR 29
3817: PUSH
3818: LD_INT 9
3820: PPUSH
3821: LD_INT 11
3823: PPUSH
3824: CALL_OW 12
3828: PUSH
3829: LD_INT 10
3831: PPUSH
3832: LD_INT 12
3834: PPUSH
3835: CALL_OW 12
3839: PUSH
3840: EMPTY
3841: LIST
3842: LIST
3843: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
3844: LD_ADDR_OWVAR 31
3848: PUSH
3849: LD_INT 1
3851: PPUSH
3852: LD_INT 3
3854: PPUSH
3855: CALL_OW 12
3859: PUSH
3860: LD_INT 1
3862: PPUSH
3863: LD_INT 4
3865: PPUSH
3866: CALL_OW 12
3870: PUSH
3871: LD_INT 9
3873: PUSH
3874: LD_INT 1
3876: PPUSH
3877: LD_INT 5
3879: PPUSH
3880: CALL_OW 12
3884: PUSH
3885: EMPTY
3886: LIST
3887: LIST
3888: LIST
3889: LIST
3890: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3891: LD_ADDR_OWVAR 27
3895: PUSH
3896: LD_INT 1
3898: PPUSH
3899: LD_INT 2
3901: PPUSH
3902: CALL_OW 12
3906: ST_TO_ADDR
// hc_class = 3 ;
3907: LD_ADDR_OWVAR 28
3911: PUSH
3912: LD_INT 3
3914: ST_TO_ADDR
// un = CreateHuman ;
3915: LD_ADDR_VAR 0 5
3919: PUSH
3920: CALL_OW 44
3924: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU2 ) ;
3925: LD_VAR 0 5
3929: PPUSH
3930: LD_INT 8
3932: PPUSH
3933: CALL_OW 52
// l = l + 1 ;
3937: LD_ADDR_VAR 0 6
3941: PUSH
3942: LD_VAR 0 6
3946: PUSH
3947: LD_INT 1
3949: PLUS
3950: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] ;
3951: LD_VAR 0 6
3955: PUSH
3956: LD_INT 1
3958: PUSH
3959: LD_INT 2
3961: PUSH
3962: LD_INT 2
3964: PUSH
3965: EMPTY
3966: LIST
3967: LIST
3968: LIST
3969: PUSH
3970: LD_OWVAR 67
3974: ARRAY
3975: EQUAL
3976: IFFALSE 3781
// end ; end ;
3978: GO 3755
3980: POP
3981: POP
// for i in factoryRU3 do
3982: LD_ADDR_VAR 0 4
3986: PUSH
3987: LD_INT 122
3989: PUSH
3990: FOR_IN
3991: IFFALSE 4215
// begin l = 0 ;
3993: LD_ADDR_VAR 0 6
3997: PUSH
3998: LD_INT 0
4000: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4001: LD_VAR 0 4
4005: PPUSH
4006: CALL_OW 310
4010: PUSH
4011: LD_INT 0
4013: EQUAL
4014: IFFALSE 4213
// begin repeat begin uc_side = 3 ;
4016: LD_ADDR_OWVAR 20
4020: PUSH
4021: LD_INT 3
4023: ST_TO_ADDR
// uc_nation = 3 ;
4024: LD_ADDR_OWVAR 21
4028: PUSH
4029: LD_INT 3
4031: ST_TO_ADDR
// hc_gallery =  ;
4032: LD_ADDR_OWVAR 33
4036: PUSH
4037: LD_STRING 
4039: ST_TO_ADDR
// hc_name =  ;
4040: LD_ADDR_OWVAR 26
4044: PUSH
4045: LD_STRING 
4047: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4048: LD_ADDR_OWVAR 29
4052: PUSH
4053: LD_INT 9
4055: PPUSH
4056: LD_INT 11
4058: PPUSH
4059: CALL_OW 12
4063: PUSH
4064: LD_INT 10
4066: PPUSH
4067: LD_INT 12
4069: PPUSH
4070: CALL_OW 12
4074: PUSH
4075: EMPTY
4076: LIST
4077: LIST
4078: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
4079: LD_ADDR_OWVAR 31
4083: PUSH
4084: LD_INT 1
4086: PPUSH
4087: LD_INT 3
4089: PPUSH
4090: CALL_OW 12
4094: PUSH
4095: LD_INT 1
4097: PPUSH
4098: LD_INT 4
4100: PPUSH
4101: CALL_OW 12
4105: PUSH
4106: LD_INT 9
4108: PUSH
4109: LD_INT 1
4111: PPUSH
4112: LD_INT 5
4114: PPUSH
4115: CALL_OW 12
4119: PUSH
4120: EMPTY
4121: LIST
4122: LIST
4123: LIST
4124: LIST
4125: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4126: LD_ADDR_OWVAR 27
4130: PUSH
4131: LD_INT 1
4133: PPUSH
4134: LD_INT 2
4136: PPUSH
4137: CALL_OW 12
4141: ST_TO_ADDR
// hc_class = 3 ;
4142: LD_ADDR_OWVAR 28
4146: PUSH
4147: LD_INT 3
4149: ST_TO_ADDR
// un = CreateHuman ;
4150: LD_ADDR_VAR 0 5
4154: PUSH
4155: CALL_OW 44
4159: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU3 ) ;
4160: LD_VAR 0 5
4164: PPUSH
4165: LD_INT 122
4167: PPUSH
4168: CALL_OW 52
// l = l + 1 ;
4172: LD_ADDR_VAR 0 6
4176: PUSH
4177: LD_VAR 0 6
4181: PUSH
4182: LD_INT 1
4184: PLUS
4185: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] ;
4186: LD_VAR 0 6
4190: PUSH
4191: LD_INT 1
4193: PUSH
4194: LD_INT 2
4196: PUSH
4197: LD_INT 2
4199: PUSH
4200: EMPTY
4201: LIST
4202: LIST
4203: LIST
4204: PUSH
4205: LD_OWVAR 67
4209: ARRAY
4210: EQUAL
4211: IFFALSE 4016
// end ; end ;
4213: GO 3990
4215: POP
4216: POP
// for i in factoryRU4 do
4217: LD_ADDR_VAR 0 4
4221: PUSH
4222: LD_INT 195
4224: PUSH
4225: FOR_IN
4226: IFFALSE 4450
// begin l = 0 ;
4228: LD_ADDR_VAR 0 6
4232: PUSH
4233: LD_INT 0
4235: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4236: LD_VAR 0 4
4240: PPUSH
4241: CALL_OW 310
4245: PUSH
4246: LD_INT 0
4248: EQUAL
4249: IFFALSE 4448
// begin repeat begin uc_side = 3 ;
4251: LD_ADDR_OWVAR 20
4255: PUSH
4256: LD_INT 3
4258: ST_TO_ADDR
// uc_nation = 3 ;
4259: LD_ADDR_OWVAR 21
4263: PUSH
4264: LD_INT 3
4266: ST_TO_ADDR
// hc_gallery =  ;
4267: LD_ADDR_OWVAR 33
4271: PUSH
4272: LD_STRING 
4274: ST_TO_ADDR
// hc_name =  ;
4275: LD_ADDR_OWVAR 26
4279: PUSH
4280: LD_STRING 
4282: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4283: LD_ADDR_OWVAR 29
4287: PUSH
4288: LD_INT 9
4290: PPUSH
4291: LD_INT 11
4293: PPUSH
4294: CALL_OW 12
4298: PUSH
4299: LD_INT 10
4301: PPUSH
4302: LD_INT 12
4304: PPUSH
4305: CALL_OW 12
4309: PUSH
4310: EMPTY
4311: LIST
4312: LIST
4313: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
4314: LD_ADDR_OWVAR 31
4318: PUSH
4319: LD_INT 1
4321: PPUSH
4322: LD_INT 3
4324: PPUSH
4325: CALL_OW 12
4329: PUSH
4330: LD_INT 1
4332: PPUSH
4333: LD_INT 4
4335: PPUSH
4336: CALL_OW 12
4340: PUSH
4341: LD_INT 9
4343: PUSH
4344: LD_INT 1
4346: PPUSH
4347: LD_INT 5
4349: PPUSH
4350: CALL_OW 12
4354: PUSH
4355: EMPTY
4356: LIST
4357: LIST
4358: LIST
4359: LIST
4360: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4361: LD_ADDR_OWVAR 27
4365: PUSH
4366: LD_INT 1
4368: PPUSH
4369: LD_INT 2
4371: PPUSH
4372: CALL_OW 12
4376: ST_TO_ADDR
// hc_class = 3 ;
4377: LD_ADDR_OWVAR 28
4381: PUSH
4382: LD_INT 3
4384: ST_TO_ADDR
// un = CreateHuman ;
4385: LD_ADDR_VAR 0 5
4389: PUSH
4390: CALL_OW 44
4394: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU4 ) ;
4395: LD_VAR 0 5
4399: PPUSH
4400: LD_INT 195
4402: PPUSH
4403: CALL_OW 52
// l = l + 1 ;
4407: LD_ADDR_VAR 0 6
4411: PUSH
4412: LD_VAR 0 6
4416: PUSH
4417: LD_INT 1
4419: PLUS
4420: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] ;
4421: LD_VAR 0 6
4425: PUSH
4426: LD_INT 1
4428: PUSH
4429: LD_INT 2
4431: PUSH
4432: LD_INT 2
4434: PUSH
4435: EMPTY
4436: LIST
4437: LIST
4438: LIST
4439: PUSH
4440: LD_OWVAR 67
4444: ARRAY
4445: EQUAL
4446: IFFALSE 4251
// end ; end ;
4448: GO 4225
4450: POP
4451: POP
// end ; end_of_file
4452: LD_VAR 0 1
4456: RET
// every 0 0$01 do
4457: GO 4459
4459: DISABLE
// begin case Difficulty of 1 :
4460: LD_OWVAR 67
4464: PUSH
4465: LD_INT 1
4467: DOUBLE
4468: EQUAL
4469: IFTRUE 4473
4471: GO 4593
4473: POP
// begin SetTech ( 48 , 6 , state_Researched ) ;
4474: LD_INT 48
4476: PPUSH
4477: LD_INT 6
4479: PPUSH
4480: LD_INT 2
4482: PPUSH
4483: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
4487: LD_INT 51
4489: PPUSH
4490: LD_INT 6
4492: PPUSH
4493: LD_INT 2
4495: PPUSH
4496: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
4500: LD_INT 49
4502: PPUSH
4503: LD_INT 6
4505: PPUSH
4506: LD_INT 2
4508: PPUSH
4509: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
4513: LD_INT 48
4515: PPUSH
4516: LD_INT 3
4518: PPUSH
4519: LD_INT 2
4521: PPUSH
4522: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
4526: LD_INT 51
4528: PPUSH
4529: LD_INT 3
4531: PPUSH
4532: LD_INT 2
4534: PPUSH
4535: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
4539: LD_INT 49
4541: PPUSH
4542: LD_INT 3
4544: PPUSH
4545: LD_INT 2
4547: PPUSH
4548: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
4552: LD_INT 48
4554: PPUSH
4555: LD_INT 5
4557: PPUSH
4558: LD_INT 2
4560: PPUSH
4561: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
4565: LD_INT 51
4567: PPUSH
4568: LD_INT 5
4570: PPUSH
4571: LD_INT 2
4573: PPUSH
4574: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
4578: LD_INT 49
4580: PPUSH
4581: LD_INT 5
4583: PPUSH
4584: LD_INT 2
4586: PPUSH
4587: CALL_OW 322
// end ; 2 :
4591: GO 5045
4593: LD_INT 2
4595: DOUBLE
4596: EQUAL
4597: IFTRUE 4601
4599: GO 4799
4601: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
4602: LD_INT 57
4604: PPUSH
4605: LD_INT 6
4607: PPUSH
4608: LD_INT 2
4610: PPUSH
4611: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
4615: LD_INT 48
4617: PPUSH
4618: LD_INT 6
4620: PPUSH
4621: LD_INT 2
4623: PPUSH
4624: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
4628: LD_INT 49
4630: PPUSH
4631: LD_INT 6
4633: PPUSH
4634: LD_INT 2
4636: PPUSH
4637: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
4641: LD_INT 51
4643: PPUSH
4644: LD_INT 6
4646: PPUSH
4647: LD_INT 2
4649: PPUSH
4650: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
4654: LD_INT 52
4656: PPUSH
4657: LD_INT 6
4659: PPUSH
4660: LD_INT 2
4662: PPUSH
4663: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
4667: LD_INT 57
4669: PPUSH
4670: LD_INT 3
4672: PPUSH
4673: LD_INT 2
4675: PPUSH
4676: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
4680: LD_INT 48
4682: PPUSH
4683: LD_INT 3
4685: PPUSH
4686: LD_INT 2
4688: PPUSH
4689: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
4693: LD_INT 49
4695: PPUSH
4696: LD_INT 3
4698: PPUSH
4699: LD_INT 2
4701: PPUSH
4702: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
4706: LD_INT 51
4708: PPUSH
4709: LD_INT 3
4711: PPUSH
4712: LD_INT 2
4714: PPUSH
4715: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
4719: LD_INT 52
4721: PPUSH
4722: LD_INT 3
4724: PPUSH
4725: LD_INT 2
4727: PPUSH
4728: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
4732: LD_INT 57
4734: PPUSH
4735: LD_INT 5
4737: PPUSH
4738: LD_INT 2
4740: PPUSH
4741: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
4745: LD_INT 48
4747: PPUSH
4748: LD_INT 5
4750: PPUSH
4751: LD_INT 2
4753: PPUSH
4754: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
4758: LD_INT 49
4760: PPUSH
4761: LD_INT 5
4763: PPUSH
4764: LD_INT 2
4766: PPUSH
4767: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
4771: LD_INT 51
4773: PPUSH
4774: LD_INT 5
4776: PPUSH
4777: LD_INT 2
4779: PPUSH
4780: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
4784: LD_INT 52
4786: PPUSH
4787: LD_INT 5
4789: PPUSH
4790: LD_INT 2
4792: PPUSH
4793: CALL_OW 322
// end ; 3 :
4797: GO 5045
4799: LD_INT 3
4801: DOUBLE
4802: EQUAL
4803: IFTRUE 4807
4805: GO 5044
4807: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
4808: LD_INT 57
4810: PPUSH
4811: LD_INT 6
4813: PPUSH
4814: LD_INT 2
4816: PPUSH
4817: CALL_OW 322
// SetTech ( 58 , 6 , state_Researched ) ;
4821: LD_INT 58
4823: PPUSH
4824: LD_INT 6
4826: PPUSH
4827: LD_INT 2
4829: PPUSH
4830: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
4834: LD_INT 48
4836: PPUSH
4837: LD_INT 6
4839: PPUSH
4840: LD_INT 2
4842: PPUSH
4843: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
4847: LD_INT 49
4849: PPUSH
4850: LD_INT 6
4852: PPUSH
4853: LD_INT 2
4855: PPUSH
4856: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
4860: LD_INT 51
4862: PPUSH
4863: LD_INT 6
4865: PPUSH
4866: LD_INT 2
4868: PPUSH
4869: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
4873: LD_INT 52
4875: PPUSH
4876: LD_INT 6
4878: PPUSH
4879: LD_INT 2
4881: PPUSH
4882: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
4886: LD_INT 57
4888: PPUSH
4889: LD_INT 3
4891: PPUSH
4892: LD_INT 2
4894: PPUSH
4895: CALL_OW 322
// SetTech ( 58 , 3 , state_Researched ) ;
4899: LD_INT 58
4901: PPUSH
4902: LD_INT 3
4904: PPUSH
4905: LD_INT 2
4907: PPUSH
4908: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
4912: LD_INT 48
4914: PPUSH
4915: LD_INT 3
4917: PPUSH
4918: LD_INT 2
4920: PPUSH
4921: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
4925: LD_INT 49
4927: PPUSH
4928: LD_INT 3
4930: PPUSH
4931: LD_INT 2
4933: PPUSH
4934: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
4938: LD_INT 51
4940: PPUSH
4941: LD_INT 3
4943: PPUSH
4944: LD_INT 2
4946: PPUSH
4947: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
4951: LD_INT 52
4953: PPUSH
4954: LD_INT 3
4956: PPUSH
4957: LD_INT 2
4959: PPUSH
4960: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
4964: LD_INT 57
4966: PPUSH
4967: LD_INT 5
4969: PPUSH
4970: LD_INT 2
4972: PPUSH
4973: CALL_OW 322
// SetTech ( 58 , 5 , state_Researched ) ;
4977: LD_INT 58
4979: PPUSH
4980: LD_INT 5
4982: PPUSH
4983: LD_INT 2
4985: PPUSH
4986: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
4990: LD_INT 48
4992: PPUSH
4993: LD_INT 5
4995: PPUSH
4996: LD_INT 2
4998: PPUSH
4999: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
5003: LD_INT 49
5005: PPUSH
5006: LD_INT 5
5008: PPUSH
5009: LD_INT 2
5011: PPUSH
5012: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
5016: LD_INT 51
5018: PPUSH
5019: LD_INT 5
5021: PPUSH
5022: LD_INT 2
5024: PPUSH
5025: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
5029: LD_INT 52
5031: PPUSH
5032: LD_INT 5
5034: PPUSH
5035: LD_INT 2
5037: PPUSH
5038: CALL_OW 322
// end ; end ;
5042: GO 5045
5044: POP
// end ;
5045: END
// every 2 2$25 trigger xy = 1 do
5046: LD_EXP 2
5050: PUSH
5051: LD_INT 1
5053: EQUAL
5054: IFFALSE 5064
5056: GO 5058
5058: DISABLE
// begin enable ;
5059: ENABLE
// ProductionVehicles ;
5060: CALL 6200 0 0
// end ;
5064: END
// every 4 4$00 do var RuBase ;
5065: GO 5067
5067: DISABLE
5068: LD_INT 0
5070: PPUSH
// begin enable ;
5071: ENABLE
// RuBase := LoadVariable ( Attack_behind_08 , 0 ) ;
5072: LD_ADDR_VAR 0 1
5076: PUSH
5077: LD_STRING Attack_behind_08
5079: PPUSH
5080: LD_INT 0
5082: PPUSH
5083: CALL_OW 30
5087: ST_TO_ADDR
// if RuBase = 1 then
5088: LD_VAR 0 1
5092: PUSH
5093: LD_INT 1
5095: EQUAL
5096: IFFALSE 5100
// begin end else
5098: GO 5114
// if RuBase = 2 then
5100: LD_VAR 0 1
5104: PUSH
5105: LD_INT 2
5107: EQUAL
5108: IFFALSE 5114
// begin BehindForces ;
5110: CALL 5374 0 0
// end ; end ;
5114: PPOPN 1
5116: END
// export function SoldiersAttack ; var un , l , SLevel , SNum ; begin
5117: LD_INT 0
5119: PPUSH
5120: PPUSH
5121: PPUSH
5122: PPUSH
5123: PPUSH
// SNum = [ 2 , 3 , 4 ] [ Difficulty ] ;
5124: LD_ADDR_VAR 0 5
5128: PUSH
5129: LD_INT 2
5131: PUSH
5132: LD_INT 3
5134: PUSH
5135: LD_INT 4
5137: PUSH
5138: EMPTY
5139: LIST
5140: LIST
5141: LIST
5142: PUSH
5143: LD_OWVAR 67
5147: ARRAY
5148: ST_TO_ADDR
// SLevel = [ 5 , 6 , 6 ] [ Difficulty ] ;
5149: LD_ADDR_VAR 0 4
5153: PUSH
5154: LD_INT 5
5156: PUSH
5157: LD_INT 6
5159: PUSH
5160: LD_INT 6
5162: PUSH
5163: EMPTY
5164: LIST
5165: LIST
5166: LIST
5167: PUSH
5168: LD_OWVAR 67
5172: ARRAY
5173: ST_TO_ADDR
// l = 0 ;
5174: LD_ADDR_VAR 0 3
5178: PUSH
5179: LD_INT 0
5181: ST_TO_ADDR
// repeat uc_side = 6 ;
5182: LD_ADDR_OWVAR 20
5186: PUSH
5187: LD_INT 6
5189: ST_TO_ADDR
// uc_nation = 3 ;
5190: LD_ADDR_OWVAR 21
5194: PUSH
5195: LD_INT 3
5197: ST_TO_ADDR
// hc_gallery =  ;
5198: LD_ADDR_OWVAR 33
5202: PUSH
5203: LD_STRING 
5205: ST_TO_ADDR
// hc_name =  ;
5206: LD_ADDR_OWVAR 26
5210: PUSH
5211: LD_STRING 
5213: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5214: LD_ADDR_OWVAR 29
5218: PUSH
5219: LD_INT 9
5221: PPUSH
5222: LD_INT 11
5224: PPUSH
5225: CALL_OW 12
5229: PUSH
5230: LD_INT 10
5232: PPUSH
5233: LD_INT 12
5235: PPUSH
5236: CALL_OW 12
5240: PUSH
5241: EMPTY
5242: LIST
5243: LIST
5244: ST_TO_ADDR
// hc_skills = [ SLevel , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
5245: LD_ADDR_OWVAR 31
5249: PUSH
5250: LD_VAR 0 4
5254: PUSH
5255: LD_INT 0
5257: PPUSH
5258: LD_INT 5
5260: PPUSH
5261: CALL_OW 12
5265: PUSH
5266: LD_INT 0
5268: PPUSH
5269: LD_INT 5
5271: PPUSH
5272: CALL_OW 12
5276: PUSH
5277: LD_INT 0
5279: PPUSH
5280: LD_INT 5
5282: PPUSH
5283: CALL_OW 12
5287: PUSH
5288: EMPTY
5289: LIST
5290: LIST
5291: LIST
5292: LIST
5293: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5294: LD_ADDR_OWVAR 27
5298: PUSH
5299: LD_INT 1
5301: PPUSH
5302: LD_INT 2
5304: PPUSH
5305: CALL_OW 12
5309: ST_TO_ADDR
// hc_class = 1 ;
5310: LD_ADDR_OWVAR 28
5314: PUSH
5315: LD_INT 1
5317: ST_TO_ADDR
// un := CreateHuman ;
5318: LD_ADDR_VAR 0 2
5322: PUSH
5323: CALL_OW 44
5327: ST_TO_ADDR
// PlaceUnitArea ( un , EnemyInfranty , false ) ;
5328: LD_VAR 0 2
5332: PPUSH
5333: LD_INT 10
5335: PPUSH
5336: LD_INT 0
5338: PPUSH
5339: CALL_OW 49
// l = l + 1 ;
5343: LD_ADDR_VAR 0 3
5347: PUSH
5348: LD_VAR 0 3
5352: PUSH
5353: LD_INT 1
5355: PLUS
5356: ST_TO_ADDR
// until l = SNum ;
5357: LD_VAR 0 3
5361: PUSH
5362: LD_VAR 0 5
5366: EQUAL
5367: IFFALSE 5182
// end ;
5369: LD_VAR 0 1
5373: RET
// export function BehindForces ; var un , veh , i , l , SLevel , MechLevel , SNum ; begin
5374: LD_INT 0
5376: PPUSH
5377: PPUSH
5378: PPUSH
5379: PPUSH
5380: PPUSH
5381: PPUSH
5382: PPUSH
5383: PPUSH
// SNum = [ 2 , 3 , 3 ] [ Difficulty ] ;
5384: LD_ADDR_VAR 0 8
5388: PUSH
5389: LD_INT 2
5391: PUSH
5392: LD_INT 3
5394: PUSH
5395: LD_INT 3
5397: PUSH
5398: EMPTY
5399: LIST
5400: LIST
5401: LIST
5402: PUSH
5403: LD_OWVAR 67
5407: ARRAY
5408: ST_TO_ADDR
// SLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
5409: LD_ADDR_VAR 0 6
5413: PUSH
5414: LD_INT 5
5416: PUSH
5417: LD_INT 6
5419: PUSH
5420: LD_INT 7
5422: PUSH
5423: EMPTY
5424: LIST
5425: LIST
5426: LIST
5427: PUSH
5428: LD_OWVAR 67
5432: ARRAY
5433: ST_TO_ADDR
// l = 0 ;
5434: LD_ADDR_VAR 0 5
5438: PUSH
5439: LD_INT 0
5441: ST_TO_ADDR
// repeat uc_side = 5 ;
5442: LD_ADDR_OWVAR 20
5446: PUSH
5447: LD_INT 5
5449: ST_TO_ADDR
// uc_nation = 3 ;
5450: LD_ADDR_OWVAR 21
5454: PUSH
5455: LD_INT 3
5457: ST_TO_ADDR
// hc_gallery =  ;
5458: LD_ADDR_OWVAR 33
5462: PUSH
5463: LD_STRING 
5465: ST_TO_ADDR
// hc_name =  ;
5466: LD_ADDR_OWVAR 26
5470: PUSH
5471: LD_STRING 
5473: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5474: LD_ADDR_OWVAR 29
5478: PUSH
5479: LD_INT 9
5481: PPUSH
5482: LD_INT 11
5484: PPUSH
5485: CALL_OW 12
5489: PUSH
5490: LD_INT 10
5492: PPUSH
5493: LD_INT 12
5495: PPUSH
5496: CALL_OW 12
5500: PUSH
5501: EMPTY
5502: LIST
5503: LIST
5504: ST_TO_ADDR
// hc_skills = [ SLevel , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
5505: LD_ADDR_OWVAR 31
5509: PUSH
5510: LD_VAR 0 6
5514: PUSH
5515: LD_INT 0
5517: PPUSH
5518: LD_INT 5
5520: PPUSH
5521: CALL_OW 12
5525: PUSH
5526: LD_INT 0
5528: PPUSH
5529: LD_INT 5
5531: PPUSH
5532: CALL_OW 12
5536: PUSH
5537: LD_INT 0
5539: PPUSH
5540: LD_INT 5
5542: PPUSH
5543: CALL_OW 12
5547: PUSH
5548: EMPTY
5549: LIST
5550: LIST
5551: LIST
5552: LIST
5553: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5554: LD_ADDR_OWVAR 27
5558: PUSH
5559: LD_INT 1
5561: PPUSH
5562: LD_INT 2
5564: PPUSH
5565: CALL_OW 12
5569: ST_TO_ADDR
// hc_class = 1 ;
5570: LD_ADDR_OWVAR 28
5574: PUSH
5575: LD_INT 1
5577: ST_TO_ADDR
// un := CreateHuman ;
5578: LD_ADDR_VAR 0 2
5582: PUSH
5583: CALL_OW 44
5587: ST_TO_ADDR
// PlaceUnitArea ( un , AttackBehind , false ) ;
5588: LD_VAR 0 2
5592: PPUSH
5593: LD_INT 9
5595: PPUSH
5596: LD_INT 0
5598: PPUSH
5599: CALL_OW 49
// l = l + 1 ;
5603: LD_ADDR_VAR 0 5
5607: PUSH
5608: LD_VAR 0 5
5612: PUSH
5613: LD_INT 1
5615: PLUS
5616: ST_TO_ADDR
// until l = SNum ;
5617: LD_VAR 0 5
5621: PUSH
5622: LD_VAR 0 8
5626: EQUAL
5627: IFFALSE 5442
// l = 0 ;
5629: LD_ADDR_VAR 0 5
5633: PUSH
5634: LD_INT 0
5636: ST_TO_ADDR
// repeat uc_side = 5 ;
5637: LD_ADDR_OWVAR 20
5641: PUSH
5642: LD_INT 5
5644: ST_TO_ADDR
// uc_nation = 3 ;
5645: LD_ADDR_OWVAR 21
5649: PUSH
5650: LD_INT 3
5652: ST_TO_ADDR
// if Difficulty = 1 then
5653: LD_OWVAR 67
5657: PUSH
5658: LD_INT 1
5660: EQUAL
5661: IFFALSE 5673
// begin vc_chassis = ru_medium_wheeled ;
5663: LD_ADDR_OWVAR 37
5667: PUSH
5668: LD_INT 21
5670: ST_TO_ADDR
// end else
5671: GO 5711
// if Difficulty = 2 then
5673: LD_OWVAR 67
5677: PUSH
5678: LD_INT 2
5680: EQUAL
5681: IFFALSE 5693
// begin vc_chassis = ru_medium_tracked ;
5683: LD_ADDR_OWVAR 37
5687: PUSH
5688: LD_INT 22
5690: ST_TO_ADDR
// end else
5691: GO 5711
// if Difficulty = 3 then
5693: LD_OWVAR 67
5697: PUSH
5698: LD_INT 3
5700: EQUAL
5701: IFFALSE 5711
// begin vc_chassis = ru_heavy_wheeled ;
5703: LD_ADDR_OWVAR 37
5707: PUSH
5708: LD_INT 23
5710: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
5711: LD_ADDR_OWVAR 39
5715: PUSH
5716: LD_INT 1
5718: ST_TO_ADDR
// vc_control = control_computer ;
5719: LD_ADDR_OWVAR 38
5723: PUSH
5724: LD_INT 3
5726: ST_TO_ADDR
// if l = 0 then
5727: LD_VAR 0 5
5731: PUSH
5732: LD_INT 0
5734: EQUAL
5735: IFFALSE 5797
// begin if Difficulty = 1 then
5737: LD_OWVAR 67
5741: PUSH
5742: LD_INT 1
5744: EQUAL
5745: IFFALSE 5757
// begin vc_weapon = ru_gun ;
5747: LD_ADDR_OWVAR 40
5751: PUSH
5752: LD_INT 44
5754: ST_TO_ADDR
// end else
5755: GO 5795
// if Difficulty = 2 then
5757: LD_OWVAR 67
5761: PUSH
5762: LD_INT 2
5764: EQUAL
5765: IFFALSE 5777
// begin vc_weapon = ru_gun ;
5767: LD_ADDR_OWVAR 40
5771: PUSH
5772: LD_INT 44
5774: ST_TO_ADDR
// end else
5775: GO 5795
// if Difficulty = 3 then
5777: LD_OWVAR 67
5781: PUSH
5782: LD_INT 3
5784: EQUAL
5785: IFFALSE 5795
// begin vc_weapon = ru_heavy_gun ;
5787: LD_ADDR_OWVAR 40
5791: PUSH
5792: LD_INT 46
5794: ST_TO_ADDR
// end ; end else
5795: GO 5865
// if l = 1 then
5797: LD_VAR 0 5
5801: PUSH
5802: LD_INT 1
5804: EQUAL
5805: IFFALSE 5865
// begin if Difficulty = 1 then
5807: LD_OWVAR 67
5811: PUSH
5812: LD_INT 1
5814: EQUAL
5815: IFFALSE 5827
// begin vc_weapon = ru_heavy_machine_gun ;
5817: LD_ADDR_OWVAR 40
5821: PUSH
5822: LD_INT 42
5824: ST_TO_ADDR
// end else
5825: GO 5865
// if Difficulty = 2 then
5827: LD_OWVAR 67
5831: PUSH
5832: LD_INT 2
5834: EQUAL
5835: IFFALSE 5847
// begin vc_weapon = Ru_gatling_gun ;
5837: LD_ADDR_OWVAR 40
5841: PUSH
5842: LD_INT 43
5844: ST_TO_ADDR
// end else
5845: GO 5865
// if Difficulty = 3 then
5847: LD_OWVAR 67
5851: PUSH
5852: LD_INT 3
5854: EQUAL
5855: IFFALSE 5865
// begin vc_weapon = Ru_gun ;
5857: LD_ADDR_OWVAR 40
5861: PUSH
5862: LD_INT 44
5864: ST_TO_ADDR
// end ; end ; veh = CreateVehicle ;
5865: LD_ADDR_VAR 0 3
5869: PUSH
5870: CALL_OW 45
5874: ST_TO_ADDR
// PlaceUnitArea ( veh , AttackBehind , false ) ;
5875: LD_VAR 0 3
5879: PPUSH
5880: LD_INT 9
5882: PPUSH
5883: LD_INT 0
5885: PPUSH
5886: CALL_OW 49
// l = l + 1 ;
5890: LD_ADDR_VAR 0 5
5894: PUSH
5895: LD_VAR 0 5
5899: PUSH
5900: LD_INT 1
5902: PLUS
5903: ST_TO_ADDR
// until l = 2 ;
5904: LD_VAR 0 5
5908: PUSH
5909: LD_INT 2
5911: EQUAL
5912: IFFALSE 5637
// end ;
5914: LD_VAR 0 1
5918: RET
// every 0 0$02 do var i , Defender , Attacker ;
5919: GO 5921
5921: DISABLE
5922: LD_INT 0
5924: PPUSH
5925: PPUSH
5926: PPUSH
// begin enable ;
5927: ENABLE
// Defender = FilterAllUnits ( [ f_side , 4 ] ) ;
5928: LD_ADDR_VAR 0 2
5932: PUSH
5933: LD_INT 22
5935: PUSH
5936: LD_INT 4
5938: PUSH
5939: EMPTY
5940: LIST
5941: LIST
5942: PPUSH
5943: CALL_OW 69
5947: ST_TO_ADDR
// Attacker = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ^ FilterAllUnits ( [ [ f_side , 5 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ^ FilterAllUnits ( [ [ f_side , 5 ] , [ f_type , unit_human ] ] ) ^ FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) ;
5948: LD_ADDR_VAR 0 3
5952: PUSH
5953: LD_INT 22
5955: PUSH
5956: LD_INT 3
5958: PUSH
5959: EMPTY
5960: LIST
5961: LIST
5962: PUSH
5963: LD_INT 21
5965: PUSH
5966: LD_INT 2
5968: PUSH
5969: EMPTY
5970: LIST
5971: LIST
5972: PUSH
5973: LD_INT 33
5975: PUSH
5976: LD_INT 1
5978: PUSH
5979: EMPTY
5980: LIST
5981: LIST
5982: PUSH
5983: EMPTY
5984: LIST
5985: LIST
5986: LIST
5987: PPUSH
5988: CALL_OW 69
5992: PUSH
5993: LD_INT 22
5995: PUSH
5996: LD_INT 3
5998: PUSH
5999: EMPTY
6000: LIST
6001: LIST
6002: PUSH
6003: LD_INT 21
6005: PUSH
6006: LD_INT 2
6008: PUSH
6009: EMPTY
6010: LIST
6011: LIST
6012: PUSH
6013: LD_INT 33
6015: PUSH
6016: LD_INT 3
6018: PUSH
6019: EMPTY
6020: LIST
6021: LIST
6022: PUSH
6023: EMPTY
6024: LIST
6025: LIST
6026: LIST
6027: PPUSH
6028: CALL_OW 69
6032: ADD
6033: PUSH
6034: LD_INT 22
6036: PUSH
6037: LD_INT 5
6039: PUSH
6040: EMPTY
6041: LIST
6042: LIST
6043: PUSH
6044: LD_INT 21
6046: PUSH
6047: LD_INT 2
6049: PUSH
6050: EMPTY
6051: LIST
6052: LIST
6053: PUSH
6054: LD_INT 33
6056: PUSH
6057: LD_INT 3
6059: PUSH
6060: EMPTY
6061: LIST
6062: LIST
6063: PUSH
6064: EMPTY
6065: LIST
6066: LIST
6067: LIST
6068: PPUSH
6069: CALL_OW 69
6073: ADD
6074: PUSH
6075: LD_INT 22
6077: PUSH
6078: LD_INT 5
6080: PUSH
6081: EMPTY
6082: LIST
6083: LIST
6084: PUSH
6085: LD_INT 21
6087: PUSH
6088: LD_INT 1
6090: PUSH
6091: EMPTY
6092: LIST
6093: LIST
6094: PUSH
6095: EMPTY
6096: LIST
6097: LIST
6098: PPUSH
6099: CALL_OW 69
6103: ADD
6104: PUSH
6105: LD_INT 22
6107: PUSH
6108: LD_INT 6
6110: PUSH
6111: EMPTY
6112: LIST
6113: LIST
6114: PUSH
6115: LD_INT 21
6117: PUSH
6118: LD_INT 1
6120: PUSH
6121: EMPTY
6122: LIST
6123: LIST
6124: PUSH
6125: EMPTY
6126: LIST
6127: LIST
6128: PPUSH
6129: CALL_OW 69
6133: ADD
6134: ST_TO_ADDR
// for i in Attacker do
6135: LD_ADDR_VAR 0 1
6139: PUSH
6140: LD_VAR 0 3
6144: PUSH
6145: FOR_IN
6146: IFFALSE 6195
// begin ComAgressiveMove ( i , GetX ( Defender [ 1 ] ) + 2 , GetY ( Defender [ 1 ] ) + 2 ) ;
6148: LD_VAR 0 1
6152: PPUSH
6153: LD_VAR 0 2
6157: PUSH
6158: LD_INT 1
6160: ARRAY
6161: PPUSH
6162: CALL_OW 250
6166: PUSH
6167: LD_INT 2
6169: PLUS
6170: PPUSH
6171: LD_VAR 0 2
6175: PUSH
6176: LD_INT 1
6178: ARRAY
6179: PPUSH
6180: CALL_OW 251
6184: PUSH
6185: LD_INT 2
6187: PLUS
6188: PPUSH
6189: CALL_OW 114
// end ;
6193: GO 6145
6195: POP
6196: POP
// end ;
6197: PPOPN 3
6199: END
// export function ProductionVehicles ; begin
6200: LD_INT 0
6202: PPUSH
// case Difficulty of 1 :
6203: LD_OWVAR 67
6207: PUSH
6208: LD_INT 1
6210: DOUBLE
6211: EQUAL
6212: IFTRUE 6216
6214: GO 6306
6216: POP
// begin AddComConstruct ( factoryRU1 , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
6217: LD_INT 88
6219: PPUSH
6220: LD_INT 21
6222: PPUSH
6223: LD_INT 1
6225: PPUSH
6226: LD_INT 1
6228: PPUSH
6229: LD_INT 42
6231: PPUSH
6232: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_wheeled , engine_combustion , control_computer , ru_gun ) ;
6236: LD_INT 8
6238: PPUSH
6239: LD_INT 21
6241: PPUSH
6242: LD_INT 1
6244: PPUSH
6245: LD_INT 3
6247: PPUSH
6248: LD_INT 44
6250: PPUSH
6251: CALL_OW 185
// AddComConstruct ( factoryRU3 , ru_medium_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
6255: LD_INT 122
6257: PPUSH
6258: LD_INT 22
6260: PPUSH
6261: LD_INT 1
6263: PPUSH
6264: LD_INT 3
6266: PPUSH
6267: LD_INT 43
6269: PPUSH
6270: CALL_OW 185
// AddComConstruct ( factoryRU4 , ru_medium_wheeled , engine_combustion , control_computer , ru_gun ) ;
6274: LD_INT 195
6276: PPUSH
6277: LD_INT 21
6279: PPUSH
6280: LD_INT 1
6282: PPUSH
6283: LD_INT 3
6285: PPUSH
6286: LD_INT 44
6288: PPUSH
6289: CALL_OW 185
// wait ( 0 0$15 ) ;
6293: LD_INT 525
6295: PPUSH
6296: CALL_OW 67
// SoldiersAttack ;
6300: CALL 5117 0 0
// end ; 2 :
6304: GO 6503
6306: LD_INT 2
6308: DOUBLE
6309: EQUAL
6310: IFTRUE 6314
6312: GO 6404
6314: POP
// begin AddComConstruct ( factoryRU1 , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
6315: LD_INT 88
6317: PPUSH
6318: LD_INT 21
6320: PPUSH
6321: LD_INT 1
6323: PPUSH
6324: LD_INT 1
6326: PPUSH
6327: LD_INT 42
6329: PPUSH
6330: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
6334: LD_INT 8
6336: PPUSH
6337: LD_INT 22
6339: PPUSH
6340: LD_INT 1
6342: PPUSH
6343: LD_INT 3
6345: PPUSH
6346: LD_INT 44
6348: PPUSH
6349: CALL_OW 185
// AddComConstruct ( factoryRU3 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
6353: LD_INT 122
6355: PPUSH
6356: LD_INT 24
6358: PPUSH
6359: LD_INT 1
6361: PPUSH
6362: LD_INT 3
6364: PPUSH
6365: LD_INT 43
6367: PPUSH
6368: CALL_OW 185
// AddComConstruct ( factoryRU4 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_gun ) ;
6372: LD_INT 195
6374: PPUSH
6375: LD_INT 23
6377: PPUSH
6378: LD_INT 1
6380: PPUSH
6381: LD_INT 3
6383: PPUSH
6384: LD_INT 46
6386: PPUSH
6387: CALL_OW 185
// wait ( 0 0$15 ) ;
6391: LD_INT 525
6393: PPUSH
6394: CALL_OW 67
// SoldiersAttack ;
6398: CALL 5117 0 0
// end ; 3 :
6402: GO 6503
6404: LD_INT 3
6406: DOUBLE
6407: EQUAL
6408: IFTRUE 6412
6410: GO 6502
6412: POP
// begin ComConstruct ( factoryRU1 , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
6413: LD_INT 88
6415: PPUSH
6416: LD_INT 21
6418: PPUSH
6419: LD_INT 1
6421: PPUSH
6422: LD_INT 1
6424: PPUSH
6425: LD_INT 42
6427: PPUSH
6428: CALL_OW 125
// ComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_gun ) ;
6432: LD_INT 8
6434: PPUSH
6435: LD_INT 23
6437: PPUSH
6438: LD_INT 1
6440: PPUSH
6441: LD_INT 3
6443: PPUSH
6444: LD_INT 46
6446: PPUSH
6447: CALL_OW 125
// ComConstruct ( factoryRU3 , ru_heavy_tracked , engine_combustion , control_computer , ru_rocket_launcher ) ;
6451: LD_INT 122
6453: PPUSH
6454: LD_INT 24
6456: PPUSH
6457: LD_INT 1
6459: PPUSH
6460: LD_INT 3
6462: PPUSH
6463: LD_INT 45
6465: PPUSH
6466: CALL_OW 125
// ComConstruct ( factoryRU4 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_gun ) ;
6470: LD_INT 195
6472: PPUSH
6473: LD_INT 23
6475: PPUSH
6476: LD_INT 1
6478: PPUSH
6479: LD_INT 3
6481: PPUSH
6482: LD_INT 46
6484: PPUSH
6485: CALL_OW 125
// wait ( 0 0$15 ) ;
6489: LD_INT 525
6491: PPUSH
6492: CALL_OW 67
// SoldiersAttack ;
6496: CALL 5117 0 0
// end ; end ;
6500: GO 6503
6502: POP
// end ; end_of_file
6503: LD_VAR 0 1
6507: RET
// export buildings1 , buildings2 , buildings3 , buildings4 ; every 0 0$01 do
6508: GO 6510
6510: DISABLE
// begin enable ;
6511: ENABLE
// buildings1 := FilterUnitsInArea ( base1 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6512: LD_ADDR_EXP 3
6516: PUSH
6517: LD_INT 4
6519: PPUSH
6520: LD_INT 22
6522: PUSH
6523: LD_INT 3
6525: PUSH
6526: EMPTY
6527: LIST
6528: LIST
6529: PUSH
6530: LD_INT 21
6532: PUSH
6533: LD_INT 3
6535: PUSH
6536: EMPTY
6537: LIST
6538: LIST
6539: PUSH
6540: LD_INT 3
6542: PUSH
6543: LD_INT 24
6545: PUSH
6546: LD_INT 1000
6548: PUSH
6549: EMPTY
6550: LIST
6551: LIST
6552: PUSH
6553: EMPTY
6554: LIST
6555: LIST
6556: PUSH
6557: EMPTY
6558: LIST
6559: LIST
6560: LIST
6561: PUSH
6562: EMPTY
6563: LIST
6564: PPUSH
6565: CALL_OW 70
6569: ST_TO_ADDR
// buildings2 := FilterUnitsInArea ( base2 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6570: LD_ADDR_EXP 4
6574: PUSH
6575: LD_INT 5
6577: PPUSH
6578: LD_INT 22
6580: PUSH
6581: LD_INT 3
6583: PUSH
6584: EMPTY
6585: LIST
6586: LIST
6587: PUSH
6588: LD_INT 21
6590: PUSH
6591: LD_INT 3
6593: PUSH
6594: EMPTY
6595: LIST
6596: LIST
6597: PUSH
6598: LD_INT 3
6600: PUSH
6601: LD_INT 24
6603: PUSH
6604: LD_INT 1000
6606: PUSH
6607: EMPTY
6608: LIST
6609: LIST
6610: PUSH
6611: EMPTY
6612: LIST
6613: LIST
6614: PUSH
6615: EMPTY
6616: LIST
6617: LIST
6618: LIST
6619: PUSH
6620: EMPTY
6621: LIST
6622: PPUSH
6623: CALL_OW 70
6627: ST_TO_ADDR
// buildings3 := FilterUnitsInArea ( base3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6628: LD_ADDR_EXP 5
6632: PUSH
6633: LD_INT 2
6635: PPUSH
6636: LD_INT 22
6638: PUSH
6639: LD_INT 3
6641: PUSH
6642: EMPTY
6643: LIST
6644: LIST
6645: PUSH
6646: LD_INT 21
6648: PUSH
6649: LD_INT 3
6651: PUSH
6652: EMPTY
6653: LIST
6654: LIST
6655: PUSH
6656: LD_INT 3
6658: PUSH
6659: LD_INT 24
6661: PUSH
6662: LD_INT 1000
6664: PUSH
6665: EMPTY
6666: LIST
6667: LIST
6668: PUSH
6669: EMPTY
6670: LIST
6671: LIST
6672: PUSH
6673: EMPTY
6674: LIST
6675: LIST
6676: LIST
6677: PUSH
6678: EMPTY
6679: LIST
6680: PPUSH
6681: CALL_OW 70
6685: ST_TO_ADDR
// buildings4 := FilterUnitsInArea ( base4 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6686: LD_ADDR_EXP 6
6690: PUSH
6691: LD_INT 3
6693: PPUSH
6694: LD_INT 22
6696: PUSH
6697: LD_INT 3
6699: PUSH
6700: EMPTY
6701: LIST
6702: LIST
6703: PUSH
6704: LD_INT 21
6706: PUSH
6707: LD_INT 3
6709: PUSH
6710: EMPTY
6711: LIST
6712: LIST
6713: PUSH
6714: LD_INT 3
6716: PUSH
6717: LD_INT 24
6719: PUSH
6720: LD_INT 1000
6722: PUSH
6723: EMPTY
6724: LIST
6725: LIST
6726: PUSH
6727: EMPTY
6728: LIST
6729: LIST
6730: PUSH
6731: EMPTY
6732: LIST
6733: LIST
6734: LIST
6735: PUSH
6736: EMPTY
6737: LIST
6738: PPUSH
6739: CALL_OW 70
6743: ST_TO_ADDR
// end ;
6744: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
6745: GO 6747
6747: DISABLE
6748: LD_INT 0
6750: PPUSH
6751: PPUSH
6752: PPUSH
6753: PPUSH
// begin enable ;
6754: ENABLE
// EnginerList := UnitsInside ( depotRU1 ) ;
6755: LD_ADDR_VAR 0 1
6759: PUSH
6760: LD_INT 238
6762: PPUSH
6763: CALL_OW 313
6767: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase1 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
6768: LD_ADDR_VAR 0 2
6772: PUSH
6773: LD_INT 12
6775: PPUSH
6776: LD_INT 22
6778: PUSH
6779: LD_INT 3
6781: PUSH
6782: EMPTY
6783: LIST
6784: LIST
6785: PUSH
6786: LD_INT 25
6788: PUSH
6789: LD_INT 2
6791: PUSH
6792: EMPTY
6793: LIST
6794: LIST
6795: PUSH
6796: EMPTY
6797: LIST
6798: LIST
6799: PUSH
6800: EMPTY
6801: LIST
6802: PPUSH
6803: CALL_OW 70
6807: ST_TO_ADDR
// if buildings1 > 0 then
6808: LD_EXP 3
6812: PUSH
6813: LD_INT 0
6815: GREATER
6816: IFFALSE 6964
// begin repeat for i = 1 to EnginerList do
6818: LD_ADDR_VAR 0 4
6822: PUSH
6823: DOUBLE
6824: LD_INT 1
6826: DEC
6827: ST_TO_ADDR
6828: LD_VAR 0 1
6832: PUSH
6833: FOR_TO
6834: IFFALSE 6943
// begin if HasTask ( EnginerList [ i ] ) = true then
6836: LD_VAR 0 1
6840: PUSH
6841: LD_VAR 0 4
6845: ARRAY
6846: PPUSH
6847: CALL_OW 314
6851: PUSH
6852: LD_INT 1
6854: EQUAL
6855: IFFALSE 6859
// begin end else
6857: GO 6941
// begin if IsInUnit ( EnginerList [ i ] ) then
6859: LD_VAR 0 1
6863: PUSH
6864: LD_VAR 0 4
6868: ARRAY
6869: PPUSH
6870: CALL_OW 310
6874: IFFALSE 6917
// begin ComExitBuilding ( EnginerList [ i ] ) ;
6876: LD_VAR 0 1
6880: PUSH
6881: LD_VAR 0 4
6885: ARRAY
6886: PPUSH
6887: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings1 [ 1 ] ) ;
6891: LD_VAR 0 1
6895: PUSH
6896: LD_VAR 0 4
6900: ARRAY
6901: PPUSH
6902: LD_EXP 3
6906: PUSH
6907: LD_INT 1
6909: ARRAY
6910: PPUSH
6911: CALL_OW 190
// end else
6915: GO 6941
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings1 [ 1 ] ) ;
6917: LD_VAR 0 1
6921: PUSH
6922: LD_VAR 0 4
6926: ARRAY
6927: PPUSH
6928: LD_EXP 3
6932: PUSH
6933: LD_INT 1
6935: ARRAY
6936: PPUSH
6937: CALL_OW 190
// end ; end ; end ;
6941: GO 6833
6943: POP
6944: POP
// wait ( 0 0$01 ) ;
6945: LD_INT 35
6947: PPUSH
6948: CALL_OW 67
// until buildings1 = 0 end else
6952: LD_EXP 3
6956: PUSH
6957: LD_INT 0
6959: EQUAL
6960: IFFALSE 6818
6962: GO 7033
// if buildings1 = 0 then
6964: LD_EXP 3
6968: PUSH
6969: LD_INT 0
6971: EQUAL
6972: IFFALSE 7033
// begin for i = 1 to EnginerListOutside do
6974: LD_ADDR_VAR 0 4
6978: PUSH
6979: DOUBLE
6980: LD_INT 1
6982: DEC
6983: ST_TO_ADDR
6984: LD_VAR 0 2
6988: PUSH
6989: FOR_TO
6990: IFFALSE 7031
// begin if IsInUnit ( EnginerList [ i ] ) then
6992: LD_VAR 0 1
6996: PUSH
6997: LD_VAR 0 4
7001: ARRAY
7002: PPUSH
7003: CALL_OW 310
7007: IFFALSE 7011
// begin end else
7009: GO 7029
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU1 ) ;
7011: LD_VAR 0 2
7015: PUSH
7016: LD_VAR 0 4
7020: ARRAY
7021: PPUSH
7022: LD_INT 238
7024: PPUSH
7025: CALL_OW 120
// end ; end ;
7029: GO 6989
7031: POP
7032: POP
// end ; end ;
7033: PPOPN 4
7035: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
7036: GO 7038
7038: DISABLE
7039: LD_INT 0
7041: PPUSH
7042: PPUSH
7043: PPUSH
7044: PPUSH
// begin enable ;
7045: ENABLE
// EnginerList := UnitsInside ( depotRU2 ) ;
7046: LD_ADDR_VAR 0 1
7050: PUSH
7051: LD_INT 2
7053: PPUSH
7054: CALL_OW 313
7058: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase2 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
7059: LD_ADDR_VAR 0 2
7063: PUSH
7064: LD_INT 15
7066: PPUSH
7067: LD_INT 22
7069: PUSH
7070: LD_INT 3
7072: PUSH
7073: EMPTY
7074: LIST
7075: LIST
7076: PUSH
7077: LD_INT 25
7079: PUSH
7080: LD_INT 2
7082: PUSH
7083: EMPTY
7084: LIST
7085: LIST
7086: PUSH
7087: EMPTY
7088: LIST
7089: LIST
7090: PUSH
7091: EMPTY
7092: LIST
7093: PPUSH
7094: CALL_OW 70
7098: ST_TO_ADDR
// if buildings2 > 0 then
7099: LD_EXP 4
7103: PUSH
7104: LD_INT 0
7106: GREATER
7107: IFFALSE 7255
// begin repeat for i = 1 to EnginerList do
7109: LD_ADDR_VAR 0 4
7113: PUSH
7114: DOUBLE
7115: LD_INT 1
7117: DEC
7118: ST_TO_ADDR
7119: LD_VAR 0 1
7123: PUSH
7124: FOR_TO
7125: IFFALSE 7234
// begin if HasTask ( EnginerList [ i ] ) = true then
7127: LD_VAR 0 1
7131: PUSH
7132: LD_VAR 0 4
7136: ARRAY
7137: PPUSH
7138: CALL_OW 314
7142: PUSH
7143: LD_INT 1
7145: EQUAL
7146: IFFALSE 7150
// begin end else
7148: GO 7232
// begin if IsInUnit ( EnginerList [ i ] ) then
7150: LD_VAR 0 1
7154: PUSH
7155: LD_VAR 0 4
7159: ARRAY
7160: PPUSH
7161: CALL_OW 310
7165: IFFALSE 7208
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7167: LD_VAR 0 1
7171: PUSH
7172: LD_VAR 0 4
7176: ARRAY
7177: PPUSH
7178: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings2 [ 1 ] ) ;
7182: LD_VAR 0 1
7186: PUSH
7187: LD_VAR 0 4
7191: ARRAY
7192: PPUSH
7193: LD_EXP 4
7197: PUSH
7198: LD_INT 1
7200: ARRAY
7201: PPUSH
7202: CALL_OW 190
// end else
7206: GO 7232
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings2 [ 1 ] ) ;
7208: LD_VAR 0 1
7212: PUSH
7213: LD_VAR 0 4
7217: ARRAY
7218: PPUSH
7219: LD_EXP 4
7223: PUSH
7224: LD_INT 1
7226: ARRAY
7227: PPUSH
7228: CALL_OW 190
// end ; end ; end ;
7232: GO 7124
7234: POP
7235: POP
// wait ( 0 0$01 ) ;
7236: LD_INT 35
7238: PPUSH
7239: CALL_OW 67
// until buildings2 = 0 end else
7243: LD_EXP 4
7247: PUSH
7248: LD_INT 0
7250: EQUAL
7251: IFFALSE 7109
7253: GO 7324
// if buildings2 = 0 then
7255: LD_EXP 4
7259: PUSH
7260: LD_INT 0
7262: EQUAL
7263: IFFALSE 7324
// begin for i = 1 to EnginerListOutside do
7265: LD_ADDR_VAR 0 4
7269: PUSH
7270: DOUBLE
7271: LD_INT 1
7273: DEC
7274: ST_TO_ADDR
7275: LD_VAR 0 2
7279: PUSH
7280: FOR_TO
7281: IFFALSE 7322
// begin if IsInUnit ( EnginerList [ i ] ) then
7283: LD_VAR 0 1
7287: PUSH
7288: LD_VAR 0 4
7292: ARRAY
7293: PPUSH
7294: CALL_OW 310
7298: IFFALSE 7302
// begin end else
7300: GO 7320
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU2 ) ;
7302: LD_VAR 0 2
7306: PUSH
7307: LD_VAR 0 4
7311: ARRAY
7312: PPUSH
7313: LD_INT 2
7315: PPUSH
7316: CALL_OW 120
// end ; end ;
7320: GO 7280
7322: POP
7323: POP
// end ; end ;
7324: PPOPN 4
7326: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
7327: GO 7329
7329: DISABLE
7330: LD_INT 0
7332: PPUSH
7333: PPUSH
7334: PPUSH
7335: PPUSH
// begin enable ;
7336: ENABLE
// EnginerList := UnitsInside ( depotRU3 ) ;
7337: LD_ADDR_VAR 0 1
7341: PUSH
7342: LD_INT 138
7344: PPUSH
7345: CALL_OW 313
7349: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase3 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
7350: LD_ADDR_VAR 0 2
7354: PUSH
7355: LD_INT 13
7357: PPUSH
7358: LD_INT 22
7360: PUSH
7361: LD_INT 3
7363: PUSH
7364: EMPTY
7365: LIST
7366: LIST
7367: PUSH
7368: LD_INT 25
7370: PUSH
7371: LD_INT 2
7373: PUSH
7374: EMPTY
7375: LIST
7376: LIST
7377: PUSH
7378: EMPTY
7379: LIST
7380: LIST
7381: PUSH
7382: EMPTY
7383: LIST
7384: PPUSH
7385: CALL_OW 70
7389: ST_TO_ADDR
// if buildings3 > 0 then
7390: LD_EXP 5
7394: PUSH
7395: LD_INT 0
7397: GREATER
7398: IFFALSE 7546
// begin repeat for i = 1 to EnginerList do
7400: LD_ADDR_VAR 0 4
7404: PUSH
7405: DOUBLE
7406: LD_INT 1
7408: DEC
7409: ST_TO_ADDR
7410: LD_VAR 0 1
7414: PUSH
7415: FOR_TO
7416: IFFALSE 7525
// begin if HasTask ( EnginerList [ i ] ) = true then
7418: LD_VAR 0 1
7422: PUSH
7423: LD_VAR 0 4
7427: ARRAY
7428: PPUSH
7429: CALL_OW 314
7433: PUSH
7434: LD_INT 1
7436: EQUAL
7437: IFFALSE 7441
// begin end else
7439: GO 7523
// begin if IsInUnit ( EnginerList [ i ] ) then
7441: LD_VAR 0 1
7445: PUSH
7446: LD_VAR 0 4
7450: ARRAY
7451: PPUSH
7452: CALL_OW 310
7456: IFFALSE 7499
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7458: LD_VAR 0 1
7462: PUSH
7463: LD_VAR 0 4
7467: ARRAY
7468: PPUSH
7469: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings3 [ 1 ] ) ;
7473: LD_VAR 0 1
7477: PUSH
7478: LD_VAR 0 4
7482: ARRAY
7483: PPUSH
7484: LD_EXP 5
7488: PUSH
7489: LD_INT 1
7491: ARRAY
7492: PPUSH
7493: CALL_OW 190
// end else
7497: GO 7523
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings3 [ 1 ] ) ;
7499: LD_VAR 0 1
7503: PUSH
7504: LD_VAR 0 4
7508: ARRAY
7509: PPUSH
7510: LD_EXP 5
7514: PUSH
7515: LD_INT 1
7517: ARRAY
7518: PPUSH
7519: CALL_OW 190
// end ; end ; end ;
7523: GO 7415
7525: POP
7526: POP
// wait ( 0 0$01 ) ;
7527: LD_INT 35
7529: PPUSH
7530: CALL_OW 67
// until buildings3 = 0 end else
7534: LD_EXP 5
7538: PUSH
7539: LD_INT 0
7541: EQUAL
7542: IFFALSE 7400
7544: GO 7615
// if buildings3 = 0 then
7546: LD_EXP 5
7550: PUSH
7551: LD_INT 0
7553: EQUAL
7554: IFFALSE 7615
// begin for i = 1 to EnginerListOutside do
7556: LD_ADDR_VAR 0 4
7560: PUSH
7561: DOUBLE
7562: LD_INT 1
7564: DEC
7565: ST_TO_ADDR
7566: LD_VAR 0 2
7570: PUSH
7571: FOR_TO
7572: IFFALSE 7613
// begin if IsInUnit ( EnginerList [ i ] ) then
7574: LD_VAR 0 1
7578: PUSH
7579: LD_VAR 0 4
7583: ARRAY
7584: PPUSH
7585: CALL_OW 310
7589: IFFALSE 7593
// begin end else
7591: GO 7611
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU3 ) ;
7593: LD_VAR 0 2
7597: PUSH
7598: LD_VAR 0 4
7602: ARRAY
7603: PPUSH
7604: LD_INT 138
7606: PPUSH
7607: CALL_OW 120
// end ; end ;
7611: GO 7571
7613: POP
7614: POP
// end ; end ;
7615: PPOPN 4
7617: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
7618: GO 7620
7620: DISABLE
7621: LD_INT 0
7623: PPUSH
7624: PPUSH
7625: PPUSH
7626: PPUSH
// begin enable ;
7627: ENABLE
// EnginerList := UnitsInside ( depotRU4 ) ;
7628: LD_ADDR_VAR 0 1
7632: PUSH
7633: LD_INT 189
7635: PPUSH
7636: CALL_OW 313
7640: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase4 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
7641: LD_ADDR_VAR 0 2
7645: PUSH
7646: LD_INT 14
7648: PPUSH
7649: LD_INT 22
7651: PUSH
7652: LD_INT 3
7654: PUSH
7655: EMPTY
7656: LIST
7657: LIST
7658: PUSH
7659: LD_INT 25
7661: PUSH
7662: LD_INT 2
7664: PUSH
7665: EMPTY
7666: LIST
7667: LIST
7668: PUSH
7669: EMPTY
7670: LIST
7671: LIST
7672: PUSH
7673: EMPTY
7674: LIST
7675: PPUSH
7676: CALL_OW 70
7680: ST_TO_ADDR
// if buildings4 > 0 then
7681: LD_EXP 6
7685: PUSH
7686: LD_INT 0
7688: GREATER
7689: IFFALSE 7837
// begin repeat for i = 1 to EnginerList do
7691: LD_ADDR_VAR 0 4
7695: PUSH
7696: DOUBLE
7697: LD_INT 1
7699: DEC
7700: ST_TO_ADDR
7701: LD_VAR 0 1
7705: PUSH
7706: FOR_TO
7707: IFFALSE 7816
// begin if HasTask ( EnginerList [ i ] ) = true then
7709: LD_VAR 0 1
7713: PUSH
7714: LD_VAR 0 4
7718: ARRAY
7719: PPUSH
7720: CALL_OW 314
7724: PUSH
7725: LD_INT 1
7727: EQUAL
7728: IFFALSE 7732
// begin end else
7730: GO 7814
// begin if IsInUnit ( EnginerList [ i ] ) then
7732: LD_VAR 0 1
7736: PUSH
7737: LD_VAR 0 4
7741: ARRAY
7742: PPUSH
7743: CALL_OW 310
7747: IFFALSE 7790
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7749: LD_VAR 0 1
7753: PUSH
7754: LD_VAR 0 4
7758: ARRAY
7759: PPUSH
7760: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings4 [ 1 ] ) ;
7764: LD_VAR 0 1
7768: PUSH
7769: LD_VAR 0 4
7773: ARRAY
7774: PPUSH
7775: LD_EXP 6
7779: PUSH
7780: LD_INT 1
7782: ARRAY
7783: PPUSH
7784: CALL_OW 190
// end else
7788: GO 7814
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings4 [ 1 ] ) ;
7790: LD_VAR 0 1
7794: PUSH
7795: LD_VAR 0 4
7799: ARRAY
7800: PPUSH
7801: LD_EXP 6
7805: PUSH
7806: LD_INT 1
7808: ARRAY
7809: PPUSH
7810: CALL_OW 190
// end ; end ; end ;
7814: GO 7706
7816: POP
7817: POP
// wait ( 0 0$01 ) ;
7818: LD_INT 35
7820: PPUSH
7821: CALL_OW 67
// until buildings4 = 0 end else
7825: LD_EXP 6
7829: PUSH
7830: LD_INT 0
7832: EQUAL
7833: IFFALSE 7691
7835: GO 7906
// if buildings4 = 0 then
7837: LD_EXP 6
7841: PUSH
7842: LD_INT 0
7844: EQUAL
7845: IFFALSE 7906
// begin for i = 1 to EnginerListOutside do
7847: LD_ADDR_VAR 0 4
7851: PUSH
7852: DOUBLE
7853: LD_INT 1
7855: DEC
7856: ST_TO_ADDR
7857: LD_VAR 0 2
7861: PUSH
7862: FOR_TO
7863: IFFALSE 7904
// begin if IsInUnit ( EnginerList [ i ] ) then
7865: LD_VAR 0 1
7869: PUSH
7870: LD_VAR 0 4
7874: ARRAY
7875: PPUSH
7876: CALL_OW 310
7880: IFFALSE 7884
// begin end else
7882: GO 7902
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU4 ) ;
7884: LD_VAR 0 2
7888: PUSH
7889: LD_VAR 0 4
7893: ARRAY
7894: PPUSH
7895: LD_INT 189
7897: PPUSH
7898: CALL_OW 120
// end ; end ;
7902: GO 7862
7904: POP
7905: POP
// end ; end ;
7906: PPOPN 4
7908: END
// every 0 0$01 do var i , atakujacy , broniacy , Mech ;
7909: GO 7911
7911: DISABLE
7912: LD_INT 0
7914: PPUSH
7915: PPUSH
7916: PPUSH
7917: PPUSH
// begin enable ;
7918: ENABLE
// atakujacy = FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , Control_remote ] ] ) ;
7919: LD_ADDR_VAR 0 2
7923: PUSH
7924: LD_INT 22
7926: PUSH
7927: LD_INT 1
7929: PUSH
7930: EMPTY
7931: LIST
7932: LIST
7933: PUSH
7934: LD_INT 21
7936: PUSH
7937: LD_INT 2
7939: PUSH
7940: EMPTY
7941: LIST
7942: LIST
7943: PUSH
7944: LD_INT 33
7946: PUSH
7947: LD_INT 2
7949: PUSH
7950: EMPTY
7951: LIST
7952: LIST
7953: PUSH
7954: EMPTY
7955: LIST
7956: LIST
7957: LIST
7958: PPUSH
7959: CALL_OW 69
7963: ST_TO_ADDR
// for i in atakujacy do
7964: LD_ADDR_VAR 0 1
7968: PUSH
7969: LD_VAR 0 2
7973: PUSH
7974: FOR_IN
7975: IFFALSE 8065
// begin broniacy = FilterUnitsInArea ( VehDefend , [ f_side , 2 ] ) ;
7977: LD_ADDR_VAR 0 3
7981: PUSH
7982: LD_INT 11
7984: PPUSH
7985: LD_INT 22
7987: PUSH
7988: LD_INT 2
7990: PUSH
7991: EMPTY
7992: LIST
7993: LIST
7994: PPUSH
7995: CALL_OW 70
7999: ST_TO_ADDR
// if broniacy >= 1 then
8000: LD_VAR 0 3
8004: PUSH
8005: LD_INT 1
8007: GREATEREQUAL
8008: IFFALSE 8048
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
8010: LD_VAR 0 1
8014: PPUSH
8015: LD_VAR 0 3
8019: PPUSH
8020: LD_VAR 0 1
8024: PPUSH
8025: CALL_OW 74
8029: PPUSH
8030: CALL_OW 115
// setFuel ( i , 100 ) ;
8034: LD_VAR 0 1
8038: PPUSH
8039: LD_INT 100
8041: PPUSH
8042: CALL_OW 240
// end else
8046: GO 8063
// begin ComMoveXY ( i , 90 , 129 ) ;
8048: LD_VAR 0 1
8052: PPUSH
8053: LD_INT 90
8055: PPUSH
8056: LD_INT 129
8058: PPUSH
8059: CALL_OW 111
// end ; end ;
8063: GO 7974
8065: POP
8066: POP
// end ; end_of_file
8067: PPOPN 4
8069: END
// export Nefarem , Characters ; every 0 0$01 do var tab , x3 , i1 , p1 , x1 , x2 , p2 , i2 , veh , filter , tabCargo , un , x , RuBaseBehind ;
8070: GO 8072
8072: DISABLE
8073: LD_INT 0
8075: PPUSH
8076: PPUSH
8077: PPUSH
8078: PPUSH
8079: PPUSH
8080: PPUSH
8081: PPUSH
8082: PPUSH
8083: PPUSH
8084: PPUSH
8085: PPUSH
8086: PPUSH
8087: PPUSH
8088: PPUSH
// begin RuBaseBehind := LoadVariable ( Attack_behind_08 , 0 ) ;
8089: LD_ADDR_VAR 0 14
8093: PUSH
8094: LD_STRING Attack_behind_08
8096: PPUSH
8097: LD_INT 0
8099: PPUSH
8100: CALL_OW 30
8104: ST_TO_ADDR
// if RuBaseBehind = 1 then
8105: LD_VAR 0 14
8109: PUSH
8110: LD_INT 1
8112: EQUAL
8113: IFFALSE 8125
// begin x = 1 ;
8115: LD_ADDR_VAR 0 13
8119: PUSH
8120: LD_INT 1
8122: ST_TO_ADDR
// end else
8123: GO 8143
// if RuBaseBehind = 2 then
8125: LD_VAR 0 14
8129: PUSH
8130: LD_INT 2
8132: EQUAL
8133: IFFALSE 8143
// begin x = 2 ;
8135: LD_ADDR_VAR 0 13
8139: PUSH
8140: LD_INT 2
8142: ST_TO_ADDR
// end ; uc_side := 4 ;
8143: LD_ADDR_OWVAR 20
8147: PUSH
8148: LD_INT 4
8150: ST_TO_ADDR
// tab := LoadVariable ( units_vehicles , [ ] ) ;
8151: LD_ADDR_VAR 0 1
8155: PUSH
8156: LD_STRING units_vehicles
8158: PPUSH
8159: EMPTY
8160: PPUSH
8161: CALL_OW 30
8165: ST_TO_ADDR
// tabCargo := LoadVariable ( units_cargo , [ ] ) ;
8166: LD_ADDR_VAR 0 11
8170: PUSH
8171: LD_STRING units_cargo
8173: PPUSH
8174: EMPTY
8175: PPUSH
8176: CALL_OW 30
8180: ST_TO_ADDR
// Characters = CreateCharacterSet ( CharacterSave ) ;
8181: LD_ADDR_EXP 8
8185: PUSH
8186: LD_STRING CharacterSave
8188: PPUSH
8189: CALL_OW 31
8193: ST_TO_ADDR
// x1 := 1 ;
8194: LD_ADDR_VAR 0 5
8198: PUSH
8199: LD_INT 1
8201: ST_TO_ADDR
// i1 := 1 ;
8202: LD_ADDR_VAR 0 3
8206: PUSH
8207: LD_INT 1
8209: ST_TO_ADDR
// p1 := 1 ;
8210: LD_ADDR_VAR 0 4
8214: PUSH
8215: LD_INT 1
8217: ST_TO_ADDR
// x2 := 1 ;
8218: LD_ADDR_VAR 0 6
8222: PUSH
8223: LD_INT 1
8225: ST_TO_ADDR
// i2 := 1 ;
8226: LD_ADDR_VAR 0 8
8230: PUSH
8231: LD_INT 1
8233: ST_TO_ADDR
// p2 := 1 ;
8234: LD_ADDR_VAR 0 7
8238: PUSH
8239: LD_INT 1
8241: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
8242: LD_ADDR_EXP 7
8246: PUSH
8247: LD_STRING Nefarem
8249: PPUSH
8250: CALL_OW 34
8254: ST_TO_ADDR
// PlaceUnitArea ( Nefarem , spawnHuman , false ) ;
8255: LD_EXP 7
8259: PPUSH
8260: LD_INT 8
8262: PPUSH
8263: LD_INT 0
8265: PPUSH
8266: CALL_OW 49
// for x3 in Characters do
8270: LD_ADDR_VAR 0 2
8274: PUSH
8275: LD_EXP 8
8279: PUSH
8280: FOR_IN
8281: IFFALSE 8300
// begin PlaceUnitArea ( x3 , spawnHuman , false ) ;
8283: LD_VAR 0 2
8287: PPUSH
8288: LD_INT 8
8290: PPUSH
8291: LD_INT 0
8293: PPUSH
8294: CALL_OW 49
// end ;
8298: GO 8280
8300: POP
8301: POP
// if tab > 0 then
8302: LD_VAR 0 1
8306: PUSH
8307: LD_INT 0
8309: GREATER
8310: IFFALSE 8469
// begin while ( i1 <= tab ) do
8312: LD_VAR 0 3
8316: PUSH
8317: LD_VAR 0 1
8321: LESSEQUAL
8322: IFFALSE 8469
// begin vc_chassis := tab [ i1 ] ;
8324: LD_ADDR_OWVAR 37
8328: PUSH
8329: LD_VAR 0 1
8333: PUSH
8334: LD_VAR 0 3
8338: ARRAY
8339: ST_TO_ADDR
// vc_engine := tab [ i1 + 1 ] ;
8340: LD_ADDR_OWVAR 39
8344: PUSH
8345: LD_VAR 0 1
8349: PUSH
8350: LD_VAR 0 3
8354: PUSH
8355: LD_INT 1
8357: PLUS
8358: ARRAY
8359: ST_TO_ADDR
// vc_control := tab [ i1 + 2 ] ;
8360: LD_ADDR_OWVAR 38
8364: PUSH
8365: LD_VAR 0 1
8369: PUSH
8370: LD_VAR 0 3
8374: PUSH
8375: LD_INT 2
8377: PLUS
8378: ARRAY
8379: ST_TO_ADDR
// vc_weapon := tab [ i1 + 3 ] ;
8380: LD_ADDR_OWVAR 40
8384: PUSH
8385: LD_VAR 0 1
8389: PUSH
8390: LD_VAR 0 3
8394: PUSH
8395: LD_INT 3
8397: PLUS
8398: ARRAY
8399: ST_TO_ADDR
// veh := CreateVehicle ;
8400: LD_ADDR_VAR 0 9
8404: PUSH
8405: CALL_OW 45
8409: ST_TO_ADDR
// PlaceUnitArea ( veh , spawnVeh , false ) ;
8410: LD_VAR 0 9
8414: PPUSH
8415: LD_INT 7
8417: PPUSH
8418: LD_INT 0
8420: PPUSH
8421: CALL_OW 49
// p1 := p1 + 1 ;
8425: LD_ADDR_VAR 0 4
8429: PUSH
8430: LD_VAR 0 4
8434: PUSH
8435: LD_INT 1
8437: PLUS
8438: ST_TO_ADDR
// i1 := i1 + 4 ;
8439: LD_ADDR_VAR 0 3
8443: PUSH
8444: LD_VAR 0 3
8448: PUSH
8449: LD_INT 4
8451: PLUS
8452: ST_TO_ADDR
// x1 := x1 + 1 ;
8453: LD_ADDR_VAR 0 5
8457: PUSH
8458: LD_VAR 0 5
8462: PUSH
8463: LD_INT 1
8465: PLUS
8466: ST_TO_ADDR
// end ;
8467: GO 8312
// end ; if tabCargo > 0 then
8469: LD_VAR 0 11
8473: PUSH
8474: LD_INT 0
8476: GREATER
8477: IFFALSE 8636
// begin while ( i2 <= tabCargo ) do
8479: LD_VAR 0 8
8483: PUSH
8484: LD_VAR 0 11
8488: LESSEQUAL
8489: IFFALSE 8636
// begin vc_chassis := tabCargo [ i2 ] ;
8491: LD_ADDR_OWVAR 37
8495: PUSH
8496: LD_VAR 0 11
8500: PUSH
8501: LD_VAR 0 8
8505: ARRAY
8506: ST_TO_ADDR
// vc_engine := tabCargo [ i2 + 1 ] ;
8507: LD_ADDR_OWVAR 39
8511: PUSH
8512: LD_VAR 0 11
8516: PUSH
8517: LD_VAR 0 8
8521: PUSH
8522: LD_INT 1
8524: PLUS
8525: ARRAY
8526: ST_TO_ADDR
// vc_control := tabCargo [ i2 + 2 ] ;
8527: LD_ADDR_OWVAR 38
8531: PUSH
8532: LD_VAR 0 11
8536: PUSH
8537: LD_VAR 0 8
8541: PUSH
8542: LD_INT 2
8544: PLUS
8545: ARRAY
8546: ST_TO_ADDR
// vc_weapon := tabCargo [ i2 + 3 ] ;
8547: LD_ADDR_OWVAR 40
8551: PUSH
8552: LD_VAR 0 11
8556: PUSH
8557: LD_VAR 0 8
8561: PUSH
8562: LD_INT 3
8564: PLUS
8565: ARRAY
8566: ST_TO_ADDR
// veh := CreateVehicle ;
8567: LD_ADDR_VAR 0 9
8571: PUSH
8572: CALL_OW 45
8576: ST_TO_ADDR
// PlaceUnitArea ( veh , spawnVeh , false ) ;
8577: LD_VAR 0 9
8581: PPUSH
8582: LD_INT 7
8584: PPUSH
8585: LD_INT 0
8587: PPUSH
8588: CALL_OW 49
// p2 := p2 + 1 ;
8592: LD_ADDR_VAR 0 7
8596: PUSH
8597: LD_VAR 0 7
8601: PUSH
8602: LD_INT 1
8604: PLUS
8605: ST_TO_ADDR
// i2 := i2 + 4 ;
8606: LD_ADDR_VAR 0 8
8610: PUSH
8611: LD_VAR 0 8
8615: PUSH
8616: LD_INT 4
8618: PLUS
8619: ST_TO_ADDR
// x2 := x2 + 1 ;
8620: LD_ADDR_VAR 0 6
8624: PUSH
8625: LD_VAR 0 6
8629: PUSH
8630: LD_INT 1
8632: PLUS
8633: ST_TO_ADDR
// end ;
8634: GO 8479
// end ; end ; end_of_file
8636: PPOPN 14
8638: END
// every 0 0$02 do
8639: GO 8641
8641: DISABLE
// begin enable ;
8642: ENABLE
// if IsDead ( Nefarem ) then
8643: LD_EXP 7
8647: PPUSH
8648: CALL_OW 301
8652: IFFALSE 8663
// begin YouLost ( Nef ) ;
8654: LD_STRING Nef
8656: PPUSH
8657: CALL_OW 104
// end else
8661: GO 8804
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_weapon , us_cargo_bay ] ] ) = 1 and Cargo = 1 then
8663: LD_INT 22
8665: PUSH
8666: LD_INT 4
8668: PUSH
8669: EMPTY
8670: LIST
8671: LIST
8672: PUSH
8673: LD_INT 21
8675: PUSH
8676: LD_INT 2
8678: PUSH
8679: EMPTY
8680: LIST
8681: LIST
8682: PUSH
8683: LD_INT 33
8685: PUSH
8686: LD_INT 3
8688: PUSH
8689: EMPTY
8690: LIST
8691: LIST
8692: PUSH
8693: LD_INT 34
8695: PUSH
8696: LD_INT 12
8698: PUSH
8699: EMPTY
8700: LIST
8701: LIST
8702: PUSH
8703: EMPTY
8704: LIST
8705: LIST
8706: LIST
8707: LIST
8708: PPUSH
8709: CALL_OW 69
8713: PUSH
8714: LD_INT 1
8716: EQUAL
8717: PUSH
8718: LD_EXP 1
8722: PUSH
8723: LD_INT 1
8725: EQUAL
8726: AND
8727: IFFALSE 8731
// begin end else
8729: GO 8804
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_weapon , us_cargo_bay ] ] ) < 2 and Cargo < 2 then
8731: LD_INT 22
8733: PUSH
8734: LD_INT 4
8736: PUSH
8737: EMPTY
8738: LIST
8739: LIST
8740: PUSH
8741: LD_INT 21
8743: PUSH
8744: LD_INT 2
8746: PUSH
8747: EMPTY
8748: LIST
8749: LIST
8750: PUSH
8751: LD_INT 33
8753: PUSH
8754: LD_INT 3
8756: PUSH
8757: EMPTY
8758: LIST
8759: LIST
8760: PUSH
8761: LD_INT 34
8763: PUSH
8764: LD_INT 12
8766: PUSH
8767: EMPTY
8768: LIST
8769: LIST
8770: PUSH
8771: EMPTY
8772: LIST
8773: LIST
8774: LIST
8775: LIST
8776: PPUSH
8777: CALL_OW 69
8781: PUSH
8782: LD_INT 2
8784: LESS
8785: PUSH
8786: LD_EXP 1
8790: PUSH
8791: LD_INT 2
8793: LESS
8794: AND
8795: IFFALSE 8804
// begin YouLost ( pojazdyded ) ;
8797: LD_STRING pojazdyded
8799: PPUSH
8800: CALL_OW 104
// end ; end ;
8804: END
